Скрытие имени контроллера по умолчанию в URL-адресах PHP CodeIgniter - PullRequest
2 голосов
/ 05 июня 2011

Я пытаюсь удалить имя контроллера по умолчанию из URL-адресов в CodeIgniter с помощью htaccess; У меня есть скрытый index.php, но я также хочу избавиться от контроллера по умолчанию, который в настоящее время называется con_index.

Например, если корнем сайта был mysite.com, mysite.com/con_index/function1 изменится на mysite.com/function1 и т. д.

Все остальные контроллеры могут оставаться в URL, поэтому если бы у меня был другой контроллер с именем location с функцией location1, mysite.com/locations/location1 остался бы прежним.

Я думаю, что это создает более обычную структуру, а не имя класса и функции, появляющееся там, как только вы покидаете корень сайта. Скрежетал зубами, пытаясь добиться этого, кто-нибудь может помочь?

Ответы [ 3 ]

1 голос
/ 07 августа 2011

Попробуйте это внутри вашего .htaccess:

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^(.*)\/$ index.php/com_index/$1 [nc] [L]

Это заменит все вхождения в скобках на $1. Итак, когда вы звоните www.example.com/function_1/, на самом деле он звонит www.example.com/com_index/function_1

Однако я не уверен, что он работает для CI, потому что CI может иметь некоторые ограничения для доступа к URL-маршруту.

0 голосов
/ 19 ноября 2013

enter code here $ route ['(: any)'] = 'имя_контроллера / имя_функции / $ 1';

он заменит контроллер, а затем вы можете попытаться получить доступ к URL, не вводя в него имя контроллера.

0 голосов
/ 05 июня 2011

Вы пробовали использовать

$route['default_controller'] = 'con_index'

Контроллер CodeIgniter по умолчанию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...