.htaccess域之间的mod_rewrite重定向

时间:2009-07-20 00:54:28

标签: .htaccess mod-rewrite dns redirect

我有两个域名,cshen.ca和cshen.net,都指向同一个地方。

我正在尝试使用mod_rewrite完成以下操作:

  • cshen.net 被301重定向到 cshen.ca
  • www.cshen.net www.cshen.ca 均重定向至 cshen.ca
  • 重定向后保留域名后的路径,例如 www.cshen.net/foo/bar / 会重定向到 cshen.ca/foo/bar /

我尝试了各种各样的规则,但似乎无法让它发挥作用。

RewriteCond %{HTTP_HOST} ^cshen\.net$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://cshen.ca/$1 [R=301,L]

这可以完成前两个规则,但会将所有内容重定向回主页,而不会保留其余的URL。

RewriteCond %{HTTP_HOST} ^cshen\.net$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^/(.*)$ http://cshen.ca/$1 [R=301,L]

进行一些小改动并在RewriteRule中添加斜杠'/'会保留URL的其余部分,但只会重定向 www.cshen.ca cshen.net www.cshen.net 都不会被重定向到任何地方。

我也试过Apache's guide并使用了这段代码:

RewriteCond %{HTTP_HOST} !^cshen\.ca [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://cshen.ca/$1 [L,R]

我认为这样可行,因为它应该重定向任何 cshen.ca 网址,但是,就像第二段代码一样,它不会对 cshen.net www.cshen.net

我刚刚用尽其他事情的想法。如果有人可以提供帮助,我将不胜感激!

附录:如果重要,我正在使用WordPress的漂亮网址,其重写规则是:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

我已经尝试在WordPress规则之前和之后设置我的规则(当我在我的规则之前添加 RewriteEngine On 之前把它放在我的规则之前),没有任何区别。< / p>

谢谢!

1 个答案:

答案 0 :(得分:0)

不知道如何编辑,通过在WP的

之前放置来自apache的代码来解决

一定忘了早点测试一下。