【发布时间】:2011-11-25 19:07:35
【问题描述】:
我们有一个多子域站点,可根据子域文本生成动态内容。但是,如果将 www 附加到子域,则它不起作用。由于有些用户习惯在每个 URL 前添加 www,我们希望通过 URL 重写来修复它。
编辑
我已经走到这一步了:
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(有或没有像 /index.html 这样的 URI)。正如预期的那样。
但是 www.ono.subdominio.dev 将进入无限重定向。像这样:
http://www.ono.subdominio.dev/ono.subdominio.dev//ono.subdominio.dev//ono...
为什么不重写主机?
【问题讨论】:
-
也许我不必对 RewriteRule 点进行转义?
-
试试 RewriteRule ^(.*)$ http://%1\.domain\.com/$1 [R=301,L]
-
投票迁移到 webmasters.stackexchange.com。即使这里的人知道答案,问答也可能在更切题的地方更有价值。
-
不介意将其转移给网站管理员。不知道怎么弄。
-
@Krister:是的,使用 http:// 确实有帮助,但我猜我的 RegEx 仍然有问题。
标签: regex mod-rewrite apache2 subdomain