2012-05-31 46 views
0

我需要设置一个指令,在我的.htaccess文件重定向如下:如何重定向到不同的域

http://mydomain.com/internal/

http://myotherdomain.com/internal/

任何人都可以帮助?

感谢

我的代码 - 产生500内部服务器错误

//Rewrite to www 
Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^mydomain.com/internal[nc] 
RewriteRule ^(.*)$ http://myotherdomain.com/internal/$1 [r=301,nc] 
+0

一方面,在.htaccess意见不以''//好 – geoffspear

+0

抓@Wooble - 其实我也知道,他们开始与英镑符号(#)。我从一个在线生成器获得了代码,并且从未注意到该行 –

回答

2

你有一些问题与您的文件:注释以#没有//,你无法企及的HTTP_HOST URI(你试图匹配/内部)并且规则或cond与标志(NC)之间需要有一个空格。这应该工作,虽然:

#Rewrite to www 
Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^mydomain.com$ [NC] 
RewriteRule ^internal(.*)$ http://myotherdomain.com/internal$1 [R=301,NC] 
+0

为什么值得@Ansari,.htaccess文件实际上存在于/ internal /目录本身,因为这是我想重定向的源域中唯一的目录。结果只是给我一个目录列表mydomain.com/internal –

+0

得到它的工作@Ansari使用这个修订的代码行''重写规则^(。*)$'... –

+0

很高兴听到它 - 我要建议除了'RewriteBase/internal /'之外。 – Ansari

1

试试这个:

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} ^mydomain.com$ [NC] 
RewriteRule ^internal(.*)$ http://myotherdomain.com/internal$1 [L,NC] 

(.*)将复制任何东西,所以你可以在$1使用它。如果重定向应该是永久性的,只要添加R=301L,NC

编辑 你的错误在给定的一段代码是:

  1. 评论用“#”
  2. 主机是^mydomain.com$
  3. 您必须在主机和[NC]之间添加一个空格
  4. RewriteRule ^(.*)$ http://myotherdomain.com/$1RewriteRule ^internal/(.*)$ http://myotherdomain.com/internal/$1,但你的规则将重定向到internal/internal
+0

这不起作用 - 在重写域之前,必须先重写HTTP_HOST。 – Ansari

+0

这只是呈现一个目录列表http://mydomain.com/internal/ @ChristopherBrix –

+0

谢谢,我添加了cond – Christopher

相关问题