#regex #iirf
#регулярное выражение #iirf
Вопрос:
Я видел массу примеров перезаписи URL-адресов на основе поддомена, но я пытаюсь перезаписать URL-адреса на основе самого доменного имени, в частности, обслуживать содержимое из подпапки с именем домена в ней.
Например, я бы хотел
http://www.site1.com/sub/folders/long-html-filename.htm должно быть переписано в любой /sites/www.site1.com/sub/folders/long-html-filename.htm или http://www.masterdomain.com/sites/www.site1.com/sub/folders/long-html-filename.htm
Я смог выполнить большую часть регулярных выражений перезаписи самостоятельно, но в этом я натыкаюсь на кирпичную стену.
Спасибо!
Ответ №1:
Вы пробовали использовать%{HTTP_HOST} для записи имени хоста? Может быть, что-то вроде этого сработало бы:
RewriteRule ^/(.*) /sites/%{HTTP_HOST}/$1
Комментарии:
1. Несколько примеров здесь , показывающих, как захватить доменное имя отдельно от поддомена.
Ответ №2:
Кевин — ты был близок. Автор IIRF помог мне проделать оставшуюся часть пути:
RewriteRule ^/(?!sites/)(.*)$ /sites/%{HTTP_HOST}/$1
Сейчас я просто пытаюсь выяснить, как совместить это с принудительным перенаправлением WWW.
Еще один камень преткновения…У меня есть это:
RewriteCond %{HTTP_HOST} ^(?!www)[^.] .[^.] $ [I]
RedirectRule ^/(.*) http://www.%{HTTP_HOST}/$1 [R=301]
RewriteRule ^/(?!sites/)(.*)$ /sites/%{HTTP_HOST}/$1
Но, похоже, это не работает, я просто получаю тайм-аут.