【问题标题】:Trying to redirect pages from old domain to new domain through .htaccess尝试通过 .htaccess 将页面从旧域重定向到新域
【发布时间】:2021-11-28 17:48:06
【问题描述】:

我正在尝试使用 .htaccess 进行重定向,但遇到了我无法识别的问题。

我想做的事:将所有页面从我的旧域重定向到我的新域。 例如:https://www.olddomain.com/fun-blog-post/ 会转发到https://www.newdomain.com/blog/fun-blog-post/

我的代码

RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain.com/$1 [OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.com/$1
RewriteRule (.*)$ https://www.newdomain.com/blog/$1 [L,R=301]

意外行为:当我输入 olddomain.com 时,它会将我直接带到 newdomain.com。但是,如果我输入 olddomain.com/new-blog-post,它根本不会重定向。它会引发 404 错误并仅显示 olddomain.com/new-blog-post。

我已经检查了以下两个线程。

.htaccess redirect all pages to new domain

Redirect from old domain to new domain not work

但是,我无法弄清楚这一点。我尝试了一些不同的调整,其中大部分我不记得了,但这似乎是我能想到的最佳解决方案。有人可以帮我看看我做错了什么吗?

【问题讨论】:

    标签: apache .htaccess redirect mod-rewrite


    【解决方案1】:
    RewriteCond %{HTTP_HOST} ^olddomain.com/$1 [OR]
    RewriteCond %{HTTP_HOST} ^www.olddomain.com/$1
    RewriteRule (.*)$ https://www.newdomain.com/blog/$1 [L,R=301]
    

    正如所写,这不会重定向任何内容,因为 RewriteCond 指令的 CondPattern 末尾有错误的 /$1

    应该这样写(两个RewriteCond指令可以合二为一):

    RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com [NC]
    RewriteRule (.*) https://www.newdomain.com/blog/$1 [R=301,L]
    

    这需要靠近.htaccess 文件的顶部,在任何现有指令之前。

    注意:首先使用 302(临时)重定向进行测试,以避免潜在的缓存问题。

    您需要在测试前清除浏览器缓存。

    当我输入 olddomain.com 时,它会将我直接带到 newdomain.com

    这可能是由于缓存的重定向或“其他原因”。您发布的规则甚至不会触发此重定向。

    【讨论】:

    • 我已经完全按照所示进行了更新,并且行为根本没有改变。我已经把它提升为第一条规则,没有改变。我已经清除了缓存,甚至在蜂窝网络上使用了不同的设备。所以看起来其他东西可能会干扰它。至少现在我知道我有代码,一旦我找到导致它不起作用的原因,它应该可以工作。
    • 另外,$1 是一个非常晚的附加组件,旨在寻找某种方式让重定向工作或做一些不同的事情。
    • @Jeff olddomain.comnewdomain.com 是如何配置/设置的?他们大概都指向同一个地方? “当我输入 olddomain.com 时,它会直接将我带到 newdomain.com”——这大概是目标 URL 上没有/blog 目录?当然,如果是这样的话,那么“其他东西”正在这样做。检查浏览器中的网络流量,是否在某处看到 3xx 响应?
    • 当我输入 oldomain.com 时,它会转到 newdomain.com/blog。这是我在 olddomain 方面获得的唯一前锋。所以我不确定发生了什么。
    • 如果您删除(或注释掉)此规则,重定向会停止吗?你的.htaccess 文件中还有其他指令吗?子目录中还有其他.htaccess 文件吗?
    猜你喜欢
    • 2012-04-03
    • 2011-09-24
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 2014-02-14
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多