2010-10-01 5 views
1

Я пытаюсь перенаправить весь трафик через index.php..htaccess дает ошибку рекурсии во всем

Вот мой файл .htaccess:

RewriteEngine On 

RewriteRule ^(.*)$ /index.php?ref=$1 [NC,L] 

Я всегда получаю HTTP 500 ошибок, и я проверить Error.log и я вижу, что его внутренняя ошибка рекурсии. Кто-нибудь может мне с этим помочь? Благодарю.

ответ

3

Не совсем уверен, является ли канонический способ сделать это, но при добавлении состояние, как это будет работать: (. QSA добавить любые строки запроса)

RewriteCond %{REQUEST_URI} !^/index.php 
RewriteRule ^(.*)$ /index.php?ref=$1 [QSA] 

Однако я рекомендовал бы дополнительный

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

предотвратить статические ресурсы направляются через index.php (если это не действительно, что вы хотите.)

+0

+1, '! -f' &'! -d' ar среди _my_ стандартного «начала проекта» словарь htaccess, действительно ли это _canonical_ Я не квалифицирован, чтобы сказать. Это облегчает проблему сопоставления Apache с PHP, у которой есть еще более простые инструменты, чтобы попытаться сопоставить url с ресурсом, а файлы .htaccess. Единственным недостатком является то, что вы становитесь ответственными за «не найденные» и другие ошибки, обязательно отправляйте эти коды статуса, если это необходимо. – Wrikken

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