Я создаю PHP-приложение в CodeIgniter. CodeIgniter отправляет все запросы на главный контроллер: index.php
. Тем не менее, я не люблю видеть index.php
в URI. Например, http://www.example.com/faq/whatever
будет маршрутизироваться в http://www.example.com/index.php/faq/whatever
. Мне нужен надежный способ для script знать, что это за адрес, поэтому он будет знать, что делать с навигацией. Я использовал mod_rewrite
в соответствии с документацией CodeIgniter.
Правило выглядит следующим образом:
RewriteEngine on
RewriteCond $1 !^(images|inc|favicon\.ico|index\.php|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Обычно я просто проверяю php_self
, но в этом случае он всегда index.php
. Я могу получить его от REQUEST_URI
, PATH_INFO
и т.д., Но я пытаюсь решить, какой из них будет наиболее надежным. Кто-нибудь знает (или знает, где найти) реальную разницу между php_self
, PATH_INFO
, SCRIPT_NAME
и REQUEST_URI
? Спасибо за вашу помощь!
Примечание. Мне пришлось добавлять пробелы, так как SO видит символ подчеркивания и по какой-то причине делает его курсивом.
Обновлено. Исправлены пробелы.