如何通过.htaccess重定向网址?

时间:2013-08-23 16:42:22

标签: .htaccess redirect

我想更改我网站的域名。

我希望.htaccess以这样的方式将网址重定向到新域名:

当用户点击http://old-domain.com/my-site-link/之类的网址时,它会重定向到http://new-domain.com/my-site-link/

以及当用户点击http://old-domain.com/my-site-link.php之类的网址时,它会重定向到http://new-domain.com/my-site-link.php

使用新域名,旧域名不使用。

怎么可能?什么是.htaccess的代码?

2 个答案:

答案 0 :(得分:0)

如果两个域位于同一帐户和相同的根文件夹中,则可以使用此文件:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?old-domain\.com$ [NC]
RewriteRule ^(.*)$ http://new-domain.com/$1 [R=301,QSA,L]

如果域位于不同的帐户或托管服务上,您可以将此规则简单地添加到旧域.htaccess

RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ http://new-domain.com/$1 [R=301,QSA,L]

答案 1 :(得分:0)

在旧服务器中,将以下内容添加到.htaccess。您不需要[QSA],因为您没有编写新查询。默认情况下启用[QSA]

RewriteEngine On
RewriteRule ^(.*)$ http://new-domain.com/$1 [R=301,L]

如果您在同一个VirtualHost下托管这两个网站,则意味着旧网站不是新网站的别名,您需要有条件检查旧网站的域名。

RewriteEngine On
RewriteCond %{HTTP_HOST} old-domain.com$
RewriteRule ^(.*)$ http://new-domain.com/$1 [R=301,L]

如果您不再使用旧域名,您仍应将其注册(与注册商一起注册),但将其设置为VirtualHost,您可以将顶级指令直接放入a httpd.conf目录文件下的vhosts.confconf.d等服务器配置文件(如下所示)。如果您不管理服务器,通常可以在主机用户界面的后端执行此操作,或者通过提交支持服务单(取决于主机)。

<VirtualHost *:80>
  DocumentRoot /path/old-domain.com
  serverName old-domain.com
  <Directory /path/old-domain.com>
     RewriteEngine On
     RewriteRule ^/?(.*)$ http://new-domain.com/$1 [R=301,L] 
  </Directory>
</VirtualHost>