Htaccess 301 重定向只是重定向域而不是页面
Posted
技术标签:
【中文标题】Htaccess 301 重定向只是重定向域而不是页面【英文标题】:Htaccess 301 redirect is only redirecting domain not also the page 【发布时间】:2020-03-08 08:32:23 【问题描述】:我想将页面www.domain1.nl/page-old
重定向到www.domain2.nl/page-new
。
当访问www.domain1.nl/page-old
时,它会重定向到:www.domain2.nl/page-old
。
所以重定向的工作,但只有一半。域被重定向,页面没有。
Domain1 的根目录中只有一个 .htaccess 文件。 Domain2 是一个 WordPress 网站。我们使用 apache 2.4 + php7.3 + CloudFlare(无规则设置)
我们尝试了多个 htaccess 规则文本:Redirect 301、Redirect、RedirectMatch、RewriteRule。结果都一样。
在domain1.com的.htaccess文件中:
Redirect 301 /page-old/ https://www.domain2.com/page-new/
预期结果是:
www.domain1.nl/page-old >> www.domain2.nl/page-new
实际结果:
www.domain1.nl/page-old >> www.domain2.nl/page-old
【问题讨论】:
您的代码似乎对我有用,可能是您与 Domain2 相关的问题,只是仔细检查 Domain2 上的 .htaccess 文件,是否有任何重定向等。 @anubhava,没有帮助......不幸的是。 @Whatatimetobealive 好主意,它包含一个仅常规 WordPress 的 .htaccess 文件。 @anubhava 重命名文件并再次检查。名称是正确的 .htaccess 只需将您的 .htaccess 移开并访问www.domain1.nl/page-old
以查看您获得的重定向
【参考方案1】:
把我的答案贴在评论区,方便读者日后找到
您需要改为使用此规则进行精确匹配:
RedirectMatch 301 ^/page-old/ https://www.domain2.com/page-new/
Redirect
是非正则表达式指令,适用于开始匹配。
【讨论】:
以上是关于Htaccess 301 重定向只是重定向域而不是页面的主要内容,如果未能解决你的问题,请参考以下文章
.htaccess 旧域到新域 301 重定向,但只有域,而不是页面
htaccess 301 重定向 - 删除查询字符串 (QSA)