我正在更改网站上的主域,目前添加了两个域名作为服务器别名。
例如,这意味着我可以请求http://domain1.com/subpage/和http://domain2.com/subpage/,并获得相同的结果-服务器是相同的,因此它解析到相同的位置。
如何重定向I 301http://domain2.com/subpage/到http://domain1.com/subpage/?
我当前的.htaccess如下所示:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
我尝试过以下操作,但这只会使服务器"chrash"/使其无响应
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^oldsite.com$ [NC]
RewriteRule ^(.*)$ http://newsite.com/$1 [R=301,L]
</IfModule>
# END WordPress
我最终在用例中使用了以下内容:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^olddomain.com$ [NC]
RewriteRule ^/?(.*) http://newddomain.com/$1 [R=301,L]
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
将以下代码放在旧站点根目录.htaccess
文件中:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ http://newsite.com/$1 [R=301,L]
因此,旧网站上的所有内容都将被引导到具有相同子文件夹或文件的新闻网站