khipster
@khipster

Что значит регулярное выражение в .htaccess?

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Допустим запрос: www.site.com/page.html
%1 это понятное дело site.com, а $1 почему page.html, а не www.site.com/page.html?
Или RewriteCond %{HTTP_HOST} как бы уже сам по себе преобразует URL обрезая из него www.site.com/?

Всё разобрался.

Есть одна особенность: Когда вы предваряете поле подстановки строкой http://thishost[:thisport], mod_rewrite отрезает её автоматически.

Там на самом деле целая череда событий. RewriteRule видит внешний редирект и НЕ добавляет RewriteBase, а увидев thishost обрезает www.site.com. Можно так записать, без ^ и $:

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule (.*) http://%1/$1 [R=301,L]
  • Вопрос задан
  • 212 просмотров
Пригласить эксперта
Ответы на вопрос 2
shambler81
@shambler81 Куратор тега htaccess
%1 - переменная с конда
$1 из самого реврайт рула
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы