使用 htaccess 将所有流量从根重定向到特定的子域页面

Posted

技术标签:

【中文标题】使用 htaccess 将所有流量从根重定向到特定的子域页面【英文标题】:Use htaccess to redirect all traffic from root to specific subdomain page 【发布时间】:2010-10-07 08:38:10 【问题描述】:

我有一个网站已经上线了一段时间。一段时间以来,我在子域上有一个博客。我决定取消主站点,只支持博客子域。

我为此设置了重定向设置,但它会将所有额外参数传递到博客,从而导致出现找不到文件的页面。我只想重定向到不带参数的索引页面。

我目前在我的 .htaccess 文件中拥有的是这个

RewriteCond %HTTP_HOST ^.*$
RewriteRule ^/?(.*)$ "http\:\/\/blog\.foo\.org\/index\.php" [R=301,L]

当我收到请求时

http://www.foo.org/foo/foo/?module=foo

它重定向到

http://blog.foo.org/foo/foo/index.php?module=foo

我希望它重定向到 http://blog.foo.org/index.php

【问题讨论】:

【参考方案1】:
RewriteEngine On
Options +FollowSymlinks
RewriteCond %HTTP_HOST ^(www\.)?foo\.org$ [NC]
RewriteRule ^ http://blog.foo.org/ [R=301,L]

【讨论】:

【参考方案2】:

您必须在替换中指定查询以覆盖原始:

RewriteCond %HTTP_HOST !^blog\.example\.org$ [NC]
RewriteRule ^ http://blog.example.org/index.php? [R=301,L]

【讨论】:

以上是关于使用 htaccess 将所有流量从根重定向到特定的子域页面的主要内容,如果未能解决你的问题,请参考以下文章

htaccess - 将所有非 www 流量重定向到 www

使用GeoIP和.htaccess重定向流量

.htaccess 重定向所有页面,除了少数页面重定向到特定页面

使用 .htaccess 将 HTTP 流量强制为 HTTPS

使用 .htaccess 将特定 url 重定向到另一个 url

HTACCESS重定向所有流量