更改站点域

时间:2011-01-16 06:51:20

标签: .htaccess redirect dns

快速htaccess问题

我正在更改与网站相关联的域名,并想知​​道我是否可以设置htaccess以进行以下类型的重定向:

重定向 http://www.oldomain.com/contact-us

http://www.newdomain.com/contact-us

基本上是一个全局重定向,它重定向到新域,但保留用户键入的其余URL。

更新 我最终使用以下代码,它完美地运行

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.com$
RewriteRule (.*)$ http://www.newdomain.com/$1 [R=301,L]

3 个答案:

答案 0 :(得分:3)

当然,您可以轻松完成此操作,而无需使用神秘的RewriteEngine命令。 (RewriteEngine有它的位置,但对于像这样简单的东西肯定不需要它。)

Redirect permanent / http://newdomain.com/

Redirect指令会自动保留在指示重定向的路径部分之后的任何内容。 documentation for the Redirect directive通过一个示例解释了这一点:

  
    

示例:

Redirect /service http://foo2.bar.com/service
  
     

如果客户请求http://myserver/service/foo.txt,系统会告知其访问http://foo2.bar.com/service/foo.txt

答案 1 :(得分:2)

这应该为你做。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^oldname\.com
RewriteCond %{REQUEST_URI} ^oldname\.com
RewriteRule ^(.*)$ http://www.newname.com/$1 [R=301,QSA,L]

答案 2 :(得分:1)

Batfan,

如果您控制自己的httpd,也许可以在httpd.conf中查看NameVirtualHost指令的设置。见http://httpd.apache.org/docs/2.0/mod/core.html#namevirtualhost

默认情况下,httpd未配置为执行基于名称的虚拟主机。您需要通过NameVirtualHost启用它。之后,尝试按照Greg Hewgill的建议进行重定向。

如果有效,请告诉我们。

谢谢, Ismael Casimpan