2012-06-03 3 views
0

У меня есть следующий файл .htaccess, который не работает:.htaccess и слово «найти»

RewriteEngine on 
RewriteBase/
RewriteRule ^find /findgames.php [L] 
RewriteRule ^find/ /findgames.php [L] 

Если я удалить букву «D» в «найти» все отлично работает:

RewriteEngine on 
RewriteBase/
RewriteRule ^fin /findgames.php [L] 
RewriteRule ^fin/ /findgames.php [L] 

Что мне не хватает? Найти ключевое слово? Во-вторых, у меня есть буквы «найти» подряд, я получаю «Внутреннюю ошибку сервера» на моем веб-сайте.

ответ

1

Это абсолютно правильное и ожидаемое поведение (сообщение «Внутренняя ошибка сервера») в вашем случае. Хотя вы должны увидеть ту же ошибку даже без буквы d.

Причина - плохой соответствующий шаблон - это способ широкого. Что означает ^find? Это означает, что URL-адрес совпадения начинается с find (ведущая косая лишается Apache). Это будет соответствовать /find, /find/, /findme и т. Д. - как и ваша цель - /findgames.php.

Скорее всего (в данном конкретном случае) у вас есть бесконечный цикл перезаписи, который Apache должен сломать в какой-то момент, следовательно, ошибка. Вы можете проверить журнал ошибок Apache на точный сообщение об ошибке - это объяснит это довольно хорошо.

В любом случае - это должно работа для вас - он будет перенаправлять запросы на /find, а также /find/ (точное совпадение) в /findgames.php.

RewriteEngine on 
RewriteBase/
RewriteRule ^find/?$ /findgames.php [L] 
+0

Спасибо, что помогает тонне! Цените полное объяснение. – user1150873

Смежные вопросы