2010-08-08 2 views
0

Я хотел бы знать, почему следующий файл Htaccess производит ошибку 500:переписан вопрос URL

<IfModule !mod_rewrite.c> 
    ErrorDocument 500 "Your_Server_Is_Not_Compatible: Apache does not have mod_rewrite loaded. Please check your Apache setup." 
    RedirectMatch 302 .* index.php 
</IfModule> 

<IfModule mod_rewrite.c> 

RewriteEngine on 
RewriteRule ^(.*)$ versions/0/1/$1 

</IfModule> 

спасибо заранее спасибо

+0

Поэтому я хочу, чтобы любой файл был перенаправлен на его эквивалент в папке/версиях/0/1, например, index.php => versions/0/1/index.php и т. Д. – fabjoa

+2

Почему бы не спросить журнал ошибок? –

+0

Я сделал это, и в журнале нет ошибок. – fabjoa

ответ

2

Вы получаете ошибку 500, потому что вы заставляя сервер введите бесконечный цикл (который он сердится и бросает ошибку, чтобы остановить).

Это из-за ваш RewriteRule, который всегда будет соответствовать:

RewriteRule ^(.*)$ versions/0/1/$1 

^(.*)$ соответствует значению versions/0/1/, поэтому после выполнения первоначального рерайт, набор правил повторно оценивается и создает цикл, который выглядит например:

versions/0/1/something 
versions/0/1/versions/0/1/something 
versions/0/1/versions/0/1/versions/0/1/something 

.. и так далее.

Вы должны обусловить ваш RewriteRule, чтобы предотвратить зацикливание, возможно, следующим образом:

RewriteEngine on 
RewriteCond %{REQUEST_URI} !^/versions 
RewriteRule ^(.*)$ versions/0/1/$1 

Кроме того, ваше ErrorDocument 500 заявление не имеет особого смысла, так как вы никогда не будете генерировать ошибку 500 , потому что вы доном У меня есть mod_rewrite, так как вы окружили соответствующие директивы mod_rewrite с помощью <IfModule mod_rewrite.c>.

+0

Ты, мужчина, Тим! Прямо на деньги! Как я не думал об этом! Ну, вот почему общинные скалы! – fabjoa

+0

Кстати, это то, что я придумал в случае, если это помогает \t RewriteEngine на \t \t # Dev \t # хак, чтобы избежать бесконечного цикла \t RewriteCond% {REQUEST_URI}!/версии/ \t # перенаправляет Деву \t RewriteRule^Dev /(.+) версии/0/1/$ 1 [L] \t \t # стабильный \t # рубить, чтобы избежать бесконечного цикла \t RewriteCond% {REQUEST_URI}!/Версия/ \t # перенаправляет к стабильному \t RewriteRule^(. +) Версия/0/0/$ 1 fabjoa

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