CodeIgniter 2 больше не может использовать PATH_INFO после изменения .htaccess - PullRequest
0 голосов
/ 10 сентября 2011

Я новичок в CI и пытаюсь удалить надоедливый "index.php" из URL.Это .htaccess, который я использую:

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

Как видите, я должен использовать QUERY_STRING, чтобы новый URL работал (обратите внимание на знак вопроса после index.php).Когда я пытаюсь использовать PATH_INFO (т.е. без знака вопроса), я получаю только ошибку No input file specified.

Это нормально, и я согласен с использованием QUERY_STRING, если придется, ноЯ не понимаю проблему, потому что я использовал PATH_INFO просто отлично, прежде чем я начал играть с перезаписью - то есть работал по умолчанию "example.com/index.php/controller/function", и это использует PATH_INFO AFAIK.

Кто-нибудь знает, почему в моем примере htaccess ломает PATH_INFO?Извините за глупый вопрос.

1 Ответ

2 голосов
/ 01 мая 2012

Попробуйте это:

RewriteEngine   on
RewriteCond     %{REQUEST_FILENAME} !-d
RewriteCond     %{REQUEST_FILENAME} !-f
RewriteRule     .* index.php/%{REQUEST_URI}   [L]

Вышеуказанные правила перезаписи работают нормально для приложения, над которым я сейчас работаю ... они передают правильные запросы GET вместе с правильными значениями PATH_INFO.

...