5

В моем локальном сайтеподробнее о продукте страница маршрутизация в CodeIgniter

http://localhost/giftsware/nl/products/details/2382

Это мой браузер URL для описания продукта страницы теперь я хочу более дружественный к пользователю URL для описания страницы товара. Я хочу изменить выше URL для

http://localhost/giftsware/products/2382

Я попытался маршрутизации всех вызовов на деталь, добавляя

$ маршрута [ 'продуктов/(: любой)'] = " нл/продукция/подробности/$ 1" ;

это файл route.php, но это дает мне ошибку 404. Что может быть возможной проблемой и как я могу ее исправить?

это мой полный код файла маршрут

$route['(:any)/products/(:num)'] = "products/details/$2"; 
$route['default_controller'] = "pages"; 
$route['404_override'] = ''; 

$route['^en/admin/([a-zA-Z_-]+)/(:any)'] = '$1/admin/$2'; 
$route['^en/admin/(login|logout)']   = 'admin/$1'; 
$route['^en/admin/([a-zA-Z_-]+)']   = '$1/admin/index'; 
$route['^nl/admin/([a-zA-Z_-]+)/(:any)'] = '$1/admin/$2'; 
$route['^nl/admin/(login|logout)']   = 'admin/$1'; 
$route['^nl/admin/([a-zA-Z_-]+)']   = '$1/admin/index'; 
$route['admin']       = 'admin'; 

$route['pages/(:any)'] = "pages/index/$1"; 


$route['^nl/(.+)$'] = "$1"; 
$route['^en/(.+)$'] = "$1"; 


$route['^nl$'] = $route['default_controller']; 
$route['^en$'] = $route['default_controller']; 
+2

Вы уверены, что у вас нет противоречивого маршрута? Ваша маршрутизация выглядит правильно, я не вижу причин, чтобы она не работала. – mcryan

+1

Вы можете показать свой полный файл routes.php? порядок, в котором объявляются маршруты, важен, и часто мне приходилось менять его, чтобы они не конфликтуют. –

+0

Был ли у вас класс с именем nl? У вас есть метод, называемый продуктом? –

ответ

1

Попробуйте

$route['^nl/products/details/(\d+)$'] = 'products/$1'; 

Использование .htaccess файлов

Options +FollowSymLinks 
     RewriteEngine On 

     RewriteCond %{SCRIPT_FILENAME} !-d 
     RewriteCond %{SCRIPT_FILENAME} !-f 

     RewriteRule ^products/(\d+)*$ ./nl/products/details/$1 

Использование PHP

<?php 
    #remove the directory path we don't want 
    $request = str_replace("nl/products/details", "products", $_SERVER['REQUEST_URI']); 
    ?> 
+0

thnks ... я пробую ваш код, но не работаю. –

Смежные вопросы