在我的网站上,我有兴趣将论坛从子目录移动到子域。论坛目前位于example.com/forums
,我想将其移至forums.example.com
。移动后,我想使用htaccess将所有论坛流量重定向到子域名,但问题是我的网站有两个TLD,.com
域和.net
域。
我目前正在尝试使用此方法重定向流量:
RewriteCond %{HTTP_HOST} !=forums.example.net
RewriteRule ^forums(/(.*))?$ https://forums.example.net/$2 [L,R=301]
RewriteCond %{HTTP_HOST} !=forums.example.com
RewriteRule ^forums(/(.*))?$ https://forums.example.com/$2 [L,R=301]
这只有一半的作品。无论我访问哪个TLD,它总是会将我重定向到forums.example.net
,即使我是从example.com/forums
访问,在这种情况下我希望它转到forums.example.com
。我怎么能做到这一点?
答案 0 :(得分:3)
您可以将此单一规则用作 forums/.htaccess
中的首要规则,而不是顶级.htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?:www\.)?(example\.(?:com|net))$ [NC]
RewriteRule ^.*$ http://forums.%1/$0 [L,R=301,NE]
对于root .htaccess,请将此规则用作您的第一条规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?:www\.)?(example\.(?:com|net))$ [NC]
RewriteRule ^forums(/.*)?$ http://forums.%1$1 [NC,L,R=301,NE]
答案 1 :(得分:1)
请使用以下规则进行正确的重定向,以便按需使用。
Rewritengine On
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^forums$ http://forums.example.com/? [L,R=301]
RewriteCond %{HTTP_HOST} ^example\.net$
RewriteRule ^forums$ http://forums.example.net/? [L,R=301]