将www.domainnamenumberone.com/wordpress/path/改写为domaintwo.com/wordpress/path

时间:2014-12-31 16:08:05

标签: .htaccess url-rewriting

我有两个同一网站的域名,需要进行正确的重写,以便每当有人访问第一个域名和所有子目录时,使用或不使用www。他们被重定向到没有www的第二个域和子目录。

我设法为没有子目录的域名设置重定向,但无论出于何种原因,子目录都没有被重写。

因此,当我访问domainnamenumberone.com或www.domainnamenumberone.com时,我会被重定向到domaintwo.com - 但是,当我转到domainnamenumberone.com/wordpress/path或www.domainnamenumberone.com/wordpress/path我留在那里,没有任何改写。

这是我放入的内容.htaccess:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.domainnumberone\.com [NC]
RewriteRule ^(.*)$ http://domaintwo.com/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^domainnumberone\.com [NC]
RewriteRule ^(.*)$ http://domaintwo.com/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^www\.domaintwo\.com [NC]
RewriteRule ^(.*)$ http://domaintwo.com/$1 [L,R=301]

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:1)

您可以使用:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
RewriteCond %{HTTP_HOST} ^domainnumberone\.com [NC]
RewriteRule ^(.*)$ http://domaintwo.com/$1 [L,R=301]

但在我看来,它也应该与你合作.....
尝试不同的浏览器(缓存问题)

答案 1 :(得分:1)

您需要在DocumentRoot/.htaccess中将此规则设为非常第一规则

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.domaintwo\.com [NC,OR]
RewriteCond %{HTTP_HOST} ^(?:www\.)?domainnumberone\.com [NC]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(\S*)\s [NC]
RewriteRule ^ http://domaintwo.com/%1 [L,R=302,NE]

然后在wordpress/

下方的每个子项.htaccess中添加此行.htaccess,如wordpress/path/RewriteEngine On(.htaccess已存在的任何地方)
RewriteOptions Inherit