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)

url变量的htaccess 301重定向问题

.htaccess 301 重定向文件夹和子文件夹

需要 .htaccess 帮助:不存在的 url 301 重定向到 404,而不是直接给出 404

301 使用 .htaccess 重定向 URL 模式