1

我想更改我网站的域名。

我希望 .htaccess 以以下方式将 URL 重定向到新域:

当用户点击 http://old-domain.com/my-site-link/它重定向到的 URL 时http://new-domain.com/my-site-link/

以及当用户点击http://old-domain.com/my-site-link.php它重定向到的 URL 时http://new-domain.com/my-site-link.php

使用新域,不使用旧域。

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

4

2 回答 2

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]
于 2013-08-23T16:48:38.483 回答
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,您可以将 top 指令直接放入服务器配置文件中httpd.confvhosts.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>
于 2013-08-23T16:49:03.460 回答