【问题标题】:.htaccess mod_rewrite redirection between domains.htaccess mod_rewrite 域之间的重定向
【发布时间】:2010-11-12 04:29:41
【问题描述】:

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

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

  • cshen.net 被 301 重定向到 cshen.ca
  • www.cshen.netwww.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.cacshen.netwww.cshen.net 都不会被重定向到任何地方。

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

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

我认为这会起作用,因为它应该重定向 任何 不是 cshen.ca 的 url,但是,就像第二段代码一样,它对cshen.netwww.cshen.net

我几乎没有其他可以尝试的想法了。如果有人可以提供帮助,我将不胜感激!

附录:以防万一,我使用的是 WordPress 的漂亮 URL,其重写规则是:

# 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),没有任何区别。

谢谢!

【问题讨论】:

标签: .htaccess mod-rewrite dns redirect


【解决方案1】:

不知道怎么编辑,把apache的代码放在WP之前解决了

一定是之前忘记测试了。

【讨论】:

  • 如果您的问题不再相关,请关闭/删除它。
猜你喜欢
  • 1970-01-01
  • 2013-07-14
  • 1970-01-01
  • 1970-01-01
  • 2019-02-02
  • 1970-01-01
  • 2012-05-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多