Регулярное выражение IIRF для перезаписей на основе домена

#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
  

Но, похоже, это не работает, я просто получаю тайм-аут.