如何重定向到不同的域

时间:2012-05-31 18:48:31

标签: .htaccess redirect

我需要在.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]

2 个答案:

答案 0 :(得分:2)

您的文件存在一些问题:评论以#而不是//开头,您无法将URI与HTTP_HOST匹配(您尝试匹配/内部),并且需要规则或标准和标志(NC)之间的空格。这应该工作:

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

答案 1 :(得分:1)

试试这个:

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

(.*)会复制任何内容,以便您可以在$1中使用它。如果重定向应该是永久性的,只需在R=301

之后添加L,NC即可

修改 你在给定代码中的错误是:

  1. 评论使用“#”
  2. 主持人是^mydomain.com$
  3. 您必须在主持人和[NC]
  4. 之间添加空格
  5. 撰写RewriteRule ^(.*)$ http://myotherdomain.com/$1RewriteRule ^internal/(.*)$ http://myotherdomain.com/internal/$1,但您的规则会重定向到internal/internal