У меня есть веб-сайт, который в основном скрывает .php с помощью RewriteRule, а также позволяет сценарию определять параметр по слешам.
Итак, пример:
http://www.dealhandler.com/deals/san-jose/Living%20Social/233102
Сценарий - deal.php, который принимает такие параметры, как san-jose, live social и идентификатор сделки.
Вот мой .htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^dealhandler.com
RewriteRule ^(.*)$ http://www.dealhandler.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)(.*)$ $1.php$2 [L,QSA]
ПРОБЛЕМА:
Если посетитель вводит недопустимый URL-адрес, у которого нет сценария на корневом уровне, я получаю 500 ОШИБКИ.
Пример: http://www.dealhandler.com/idontexist
Я получу:
Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
Есть ли способ сохранить текущую функцию, но быть достаточно умным, чтобы остановить и перенаправить, если файл корневого уровня не существует?