Необходимо расшифровать .htaccess

BTPAHCE

Новичок
Код:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
RewriteRule ^([^/.]+)/?$ index.php?ref=$1 [L]
Идет 301 редирект, но с чего на что? Нужно расписать подробно. Заранее благодарю!
 

AnrDaemon

Продвинутый новичок
Куча бреда, на самом деле.
Редирект идёт с "/(.*)/?" на index.php?ref=$1
Три из пяти правил бессмысленны в контексте конкретного реврайта.
Включите RewriteLog/Level 2 и сами убедитесь.
 

AnrDaemon

Продвинутый новичок
Куда ещё подробнее то? Мне по пунктам выкладывать, что там наверчено?

Код:
RewriteCond %{HTTP_HOST} (.*)
Дебил писал это правило. Проверять на "пустой или любой HTTP_HOST" - пустая тут голова того, кто это писал. I.e. дебил.

Код:
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
Ставить условие на то, что REQUEST_URI кончается на слеш (причём проверка ещё уточняется как регистронезависимая! Ага-ага, у меня тут парочка слешей в нижнем регистре припасена, спецом для таких случаев!), и ещё раз ссылаться на этот же самый слеш (но уже, о чудо, регистрозависимый!) в правиле перезаписи (перенаправления). Одно из условий точно лишнее. А по хорошему - оба лишние.

Код:
RewriteRule ^([^/.]+)/?$ index.php?ref=$1 [L]
И снова чудеса. Ссылаемся на слеш, от которого мы только что избавились с помощью предыдущего правила!

Почему люди головой не думают, когда регэкспы пишут? :(
 
Сверху