URL переписать в .htaccess в приложении codeigniter - PullRequest
0 голосов
/ 24 октября 2011

У меня есть приложение codeigniter, и я хотел удалить index.php из URI. так что из codeigniter wiki я использовал этот скрипт.

Он перестал работать, как только я изменил конфигурацию, после этого все мои URL вернули только домашнюю страницу. Независимо от того, какую ссылку я использовал, она только дает мне домашнюю страницу моего сайта. Поэтому я вернул его обратно в index.php, но сервер все еще работает так же. Я попытался полностью удалить файл .htacess, затем обновить его новым, который на самом деле работает, но даже тогда он работает так же. (все URL перенаправлены на домашнюю страницу) Я совершенно не понимаю, что не так с моим скриптом или сервером.

P.S: при использовании .htacess я сделал $ config ["index"] пустым.

UPDATE

Теперь я удалил все остальное из моего файла .htaccess, и у меня есть только это, которое является важной частью для удаления index.php из сегмента uri

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

Даже с этими словами все мои URL ведут меня только на домашнюю страницу. Я не знаю, что происходит.

Ответы [ 2 ]

1 голос
/ 24 октября 2011

В вашем app / config / config.php попробуйте изменить значение:

$config['uri_protocol'] = 'AUTO';

до:

$config['uri_protocol'] = 'REQUEST_URI';

Если все еще не работает, попробуйте остальные параметры (PATH_INFO, QUERY_STRING, ORIG_PATH_INFO).

0 голосов
/ 24 октября 2011

Ваша строка ErrorDocument находится внутри <IfModule !mod_rewrite.c>, что для меня выглядит так, будто у вас не установлен модуль mod_rewrite.(Если вы это сделаете, эта строка будет проигнорирована.) Строка ErrorDocument 404 /index.php - это хак, чтобы получить доступ к файлу /index.php в случае поступления запроса на файл, который не существует.

Чтобы установить страницу 404 в CodeIgnitor, вам необходимо отредактировать файл routes.php.

$route['404_override'] = 'general/not_found';

Подробнее.

...