将旧域的每个页面重定向到新域上的相同页面URL
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将旧域的每个页面重定向到新域上的相同页面URL相关的知识,希望对你有一定的参考价值。
我知道这个问题已被提出所有变化,但我仍然找不到确切的答案。我已经更改了我的域名。所有网站文件和网址仍然相同。旧域仍然指向相同的服务器,我在htaccess文件中有以下代码。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.olddomain\.com$
RewriteRule ^(.*)$ "https\:\/\/www\.newdomain\.com\/$1" [R=301,L]
问题是,这只会重定向旧域主页。我能做什么,所以我不必为每个页面添加单独的重定向。
答案
听起来你已经将这些指令放在.htaccess
文件中的错误位置。他们需要在文件的开头,而不是最后。
这些指令看起来是典型的cPanel生成的重定向。 cPanel总是将重定向放在.htaccess
文件的末尾(这通常是不正确的)。
如果您之前有一个前端控制器(例如WordPress使用的那个),那么您会发现只有处理对文档根目录(即“主页”)的请求才能处理这些指令,因为所有其他请求都将被停止由前端控制器。
这些指令也可以简化:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com [NC]
RewriteRule (.*) https://www.newdomain.com/$1 [R=301,L]
我已经从CondPattern的末尾删除了$
,以匹配FQDN(以点结尾)。
在RewriteRule
替换中也没有必要使用反斜杠转义冒号,斜杠和点,因为这些字符在这里没有特殊含义(它不是正则表达式)。 (这种不必要的转义是cPanel非常典型的。)
以上是关于将旧域的每个页面重定向到新域上的相同页面URL的主要内容,如果未能解决你的问题,请参考以下文章