【问题标题】:.htaccess 301 redirect passing along old url to new url.htaccess 301 重定向将旧网址传递到新网址
【发布时间】:2013-10-16 10:51:42
【问题描述】:

我将一些静态 html 文件/url 重定向到一些新的 url,如下所示:

Redirect 301 / http://newsite.com
Redirect 301 /pageA.html http://newsite.com/subfolder/page-a/
Redirect 301 /pageA-B.html http://newsite.com/subfolder/page-a/page-b/

但是,生成的 url 看起来像这样:

http://newsite.com/subfolder/pageA-B.html/

而不是

http://newsite.com/subfolder/page-a/page-b/

为什么我的 url 重定向会沿旧路径传递?

【问题讨论】:

  • 你的 htaccess 文件中是否也有 mod_rewrite 规则?
  • @JonLin - 不,这只是一个直接的重定向列表。虽然我只是很偶然地想通了。我会在此之后立即发布答案。

标签: .htaccess redirect url-redirection


【解决方案1】:

原来,这只是一个优先顺序。似乎第一条规则:

Redirect 301 / http://newsite.com

立即变成一个包罗万象。相反,需要颠倒顺序:

Redirect 301 /pageA-B.html http://newsite.com/subfolder/page-a/page-b/
Redirect 301 /pageA.html http://newsite.com/subfolder/page-a/
Redirect 301 / http://newsite.com

从我收集到的信息来看,我最初的方式是,任何离开根目录的路径都会自动匹配根目录,因为它本质上是将旧 url 作为参数传递。但是通过颠倒顺序,这是一个更明确的匹配,然后优先,因为它位于它试图匹配的 url 列表的顶部。

不确定我是否正确解释了这个逻辑/操作顺序,但这是我能在凌晨 4 点总结这个功能的最好方法 =)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-19
    相关资源
    最近更新 更多