Вот проблема: когда я перехожу по этой ссылке - http://znak.net.ua он переписывается на http://znak.net.ua/ru/ru/ru/ru/ru/ и я получил ошибку 310 (net :: ERR_TOO_MANY_REDIRECTS)
Это случилось, когда я начал использовать fast-cgi с поддержкой mod_php Вот мой .htaccess:
ErrorDocument 404 «Запрошенный файл favicon.ico не найден.
DirectoryIndex index.php
<IfModule mod_php4.c>
</IfModule>
<IfModule sapi_apache2.c>
</IfModule>
<IfModule mod_php5.c>
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault A1209600
ExpiresByType text/html A1
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*)$ http://znak.net.ua/ru/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ ru/index.php?q=$1 [L,QSA]
</IfModule>
Следующая строка вызывает такое поведение:
RewriteRule ^(.*)$ http://znak.net.ua/ru/$1 [L,R=301]
Это говорит о том, что для любого запроса, содержащего какие-либо символы (или вообще ни одного), перенаправьте его на http://znak.net.ua/ru/
, за которым следует запрошенный URL. Если этот сайт сам по себе, http://znak.net.ua/
, то это означает, что запрос на /ru/
будет преобразован в ru/
(поскольку мы находимся в эффективном <Directory>
контекст из-за .htaccess
), который, в свою очередь, отправит нас на http://znak.net.ua/ru/ru/
. Оттуда вы можете легко представить, что произойдет в следующем раунде, когда запрос на /ru/ru/
приходит в.
Трудно представить, что вы пытаетесь сделать с этой строкой, поэтому признаюсь, что не знаю, как ее «исправить». Если вы можете разделить свое намерение, я рад предложить решение.