htaccess将特定URL重定向到不同的域

时间:2012-08-27 07:22:13

标签: .htaccess mod-rewrite redirect

我有2个域指向同一目录,现在我想将一些URL重定向到一个特定域,其余应该在主域上。

我有一个域名www.xyz.com这是主域名网站将会打开这个域名,从这个域名我想将特定的URL重定向到不同的域名,所以如果有人打开www.xyz.com/a/theatre那么它应该重定向到www.abc.com/a/theatre。现在来自同一个新域名,如果有人点击URL中没有“/ a / theater”的URL,那么它应该重定向回主域。如果有人打开 www.abc.com/a/classes ,那么它应该重定向到 www.xyz.com/a/classes

我使用了以下规则但没有工作,

RewriteCond %{HTTP_HOST} ^www.xyz.com$ [NC]    
RewriteCond %{REQUEST_URI} ^/a/theatre$    
RewriteRule (.*)$ http://www.abc.com/a/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www.abc.com$ [NC]    
RewriteCond %{REQUEST_URI} !^/a/theatre    
RewriteRule (.*)$ http://www.xyz.com/a/$1 [NC,L,R=301]

感谢任何帮助。 谢谢!

以下是我的htaccess的所有代码,我在这个域上安装了Joomla。

Options -Indexes

RewriteEngine on
RewriteBase /seo
RewriteCond %{HTTP_HOST} ^www.mcleancenter.org$ [NC]
RewriteCond %{REQUEST_URI} ^/seo/alden-theatre$
RewriteRule ^/?seo/(.*)$ http://www.aldentheatre.org/seo/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www.aldentheatre.org$ [NC]
RewriteCond %{REQUEST_URI} !^/seo/alden-theatre
RewriteRule ^/?seo/(.*)$ http://www.mcleancenter.org/seo/$1 [NC,L,R=301]

########## Begin - Joomla! core SEF Section
#
#RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#
########## End - Joomla! core SEF Section

1 个答案:

答案 0 :(得分:1)

您需要在规则中的正则表达式前面添加/a/来匹配前导^/?a/

RewriteCond %{HTTP_HOST} ^www.xyz.com$ [NC]    
RewriteCond %{REQUEST_URI} ^/a/theatre$    
RewriteRule ^/?a/(.*)$ http://www.abc.com/a/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www.abc.com$ [NC]    
RewriteCond %{REQUEST_URI} !^/a/theatre    
RewriteRule ^/?a/(.*)$ http://www.xyz.com/a/$1 [NC,L,R=301]