Перепишите URL для ЛЮБОГО субдомена с www на соответствующий субдомен без www - PullRequest
0 голосов
/ 24 ноября 2011

У нас есть сайт с несколькими субдоменами, который генерирует динамический котент в зависимости от текста субдомена.Однако это не работает, если www добавлен к поддомену.Поскольку некоторые пользователи используют добавление www перед каждым URL, мы хотели бы исправить это с помощью перезаписи URL.

EDIT

Я получил это далеко:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.subdominio\.dev [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{http_host} ^www\.([^\.]+)\.subdominio\.dev [NC]
RewriteRule ^(.*) http://%1.subdominio.dev$1 [R=301,QSA,NC]

Удивительно.Он хорошо работает в одном из моих тестовых поддоменов, но не в другом:

www.otro-mas.subdominio.dev перенаправляется на otro-mas.subdomino.dev (с и без URI, как / index.html).Как и ожидалось.

Однако www.ono.subdominio.dev уходит в бесконечный редирект.Например:

http://www.ono.subdominio.dev/ono.subdominio.dev//ono.subdominio.dev//ono...

Почему хост не переписывается?

Ответы [ 2 ]

0 голосов
/ 25 ноября 2011

Это работает.

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.subdominio\.dev [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{http_host} ^www\.([^\.]+)\.subdominio\.dev [NC]
RewriteRule ^(.*) http://%1.subdominio.dev$1 [R=301,QSA,NC]

У меня была проблема с кешами в моем браузере.

0 голосов
/ 25 ноября 2011

Попробуйте это:

RewriteCond %{HTTP_HOST} ^www\.([a-zA-Z-_]+)\.domain\.com [NC]
RewriteRule ^(.*)$ http://%1\.domain\.com/$1 [R=301,NC,QSA,L]

Вы, вероятно, забыли директивы QSA и L (поиск объяснений в документации Apache mod_rewrite ).

...