2011-12-20 3 views
2

У меня есть подстановочная запись DNS, позволяющая использовать все формы * .domain.com, кроме того, я указываю несколько разных доменов на одном компьютере и использую правила перезаписи для прямых запросов на вложенных папок в зависимости от URL-адреса, с которого начинается запрос.htaccess и удаление поддомена из HTTP_HOST

Например точки domain1.com в/сайты/папки/domain1, domain2.com указывает на/сайты/папки/domain2

Моя проблема в том, что я использую УАК HTTP_HOST Apache в этом правиле, который включает в себя поддомен, так что sub1.domain1.com указывает на /sites/folder/sub1.domain1.com и с несколькими сотнями поддоменов для каждого домена, нет способа создать все возможности этих папок.

Мой вопрос: как удалить все поддомены из переменной HTTP_HOST? Это то, что набор правил выглядит до сих пор:

RewriteRule ^file.xml$ sites/%{HTTP_HOST}/file.xml [L] 

Который работает, пока суб домен не входит в URL ...

ответ

1

Чтобы ограничить правило не только mydomain.com (т.е. нет субдоменов) Добавить RewriteCond директиву перед Rewrite, как показано ниже

RewriteCond %{HTTP_HOST} ^[^\.]+\.com$ [NC] 
RewriteRule ^file.xml$ sites/%{HTTP_HOST}/file.xml [L] 

Edit: Разрешить любые домены, но не поддоменов

+0

Это будет работать очень хорошо, если бы не было необходимости делать это большое количество доменов, все из которых указывают на одну и ту же машину. В этом примере mydomain.com может быть любым из нескольких разных доменов. – Jackson

+0

Выше должно работать на anydomain.com, где anydomain может быть чем-то –

+0

, похоже, это сработает, но я не могу заставить RewriteCond получить какой-либо эффект. Он по-прежнему включает субдомен в пути и не находит файлы. Возможно, мне нужно посмотреть конфигурацию apache ... – Jackson

Смежные вопросы