【问题标题】:I can't do this 301 wordpress redirect [closed]我不能做这个 301 wordpress 重定向 [关闭]
【发布时间】:2021-06-22 19:49:29
【问题描述】:

我需要将所有 250 万页从我的网站重定向到一个添加另一个栏的 URL。

例如:

https://www.example.com/my-url-is-here/perfil

https://www.example.com/enterprise/my-url-is-here/perfil

htaccess 还是 php 头文件?

【问题讨论】:

    标签: wordpress apache .htaccess redirect mod-rewrite


    【解决方案1】:

    因此,您需要在 URL 路径的开头添加 /enterprise。我假设您需要排除其他映射到静态文件的请求(如图像、CSS、JS 和 WordPress 前端控制器 index.php 本身)。在 .htaccess 文件的顶部添加以下内容:

    RewriteCond %{REQUEST_URI} !\.\w{2,4}$
    RewriteRule !^enterprise https://www.example.com/enterprise%{REQUEST_URI} [R=301,L]
    

    上述规定,如果请求的 URL 路径不以 /enterprise 开头并且不以看起来像文件扩展名的内容结尾,则重定向,在 URL 路径前加上 /enterprise

    我假设所有静态资源都包含标准文件扩展名(.css.js.png 等),并且您的 WordPress URL 看起来没有文件扩展名,例如。不是.html 等形式。这种简单的模式匹配避免了更昂贵的文件系统检查。

    包括完整的规范 URL(即https://www.example.com/)以避免在请求非规范 URL 时多次重定向。

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

    更新#1:

    我不需要重定向整个站点,只需要重定向以 /perfil/perfil/amp 结尾的 URL

    在这种情况下,您可以添加另一个条件来匹配这些 URL。例如:

    RewriteCond %{REQUEST_URI} !\.\w{2,4}$
    RewriteCond %{REQUEST_URI} /perfil(/amp)?$
    RewriteRule !^enterprise https://www.example.com/enterprise%{REQUEST_URI} [R=301,L]
    

    更新#2:

    还有一些我想通过添加 / 企业重定向的 url,但这些没有终止 /perfil/amp 示例:example.com/my-url-is-here,我想重定向到:@987654338 @

    这些似乎是“特殊情况”,因此您需要为每个“特殊”网址添加单独的指令。

    例如,以下内容可以放在上述规则之前或之后:

    RewriteRule ^my-url-is-here$ https://www.example.com/enterprise/$0/perfil [R=301,L]
    

    $0 是对与RewriteRule 匹配的整个 URL 路径的反向引用模式

    更新#3:

    ...所有网址必须包含以下单词/enterprise/my-url-is-here/perfil/enterprise/my-url-is-here/perfil/amp

    如果必须重定向 所有 URL,那么是的,您可以实施单个规则。但是,您显然不能重定向到 .../perfil .../perfil/amp - 您需要选择其中一个。

    例如:

    RewriteCond %{REQUEST_URI} !^/(enterprise|perfil)(/|$)
    RewriteRule ^([\w-]+)/?$ https://www.example.com/enterprise/$1/perfil [R=301,L]
    

    以上重定向所有对单个路径段 URL 的请求,其中该路径段只能包含字符 a-zA-Z0-9_(下划线)或 -(连字符)和重定向到 /enterprise/<url>/perfil 形式的 URL。

    它将重定向/foo/foo/,但不会重定向/something/foo/foo/something/enterprise/perfil(如果它们可能是有效请求?)。

    $1 反向引用包含捕获的 URL 路径减去尾部斜杠(如果有)。

    【讨论】:

    • 您可以添加另一个条件来匹配这些 URL。我已经更新了我的答案。 (我无法阅读您对代码示例的评论 - 看起来您引入了很多错误的间距?!使用反引号格式化 cmets 中的“短”内联代码,但需要将代码示例添加到您的问题中保留格式。)
    • 老兄,我只想谢谢你。工作完美。非常感谢你,你不知道我对此有多感激!
    • 我已经更新了我的答案。
    • 您如何区分/url-to-be-redirected/url-should-not-be-redirected?或者,是否应该重定向所有其他 URL?
    • 是的,但是...您想按照您的建议重定向所有个其他网址还是仅重定向“某些网址”?如果您只想重定向“一些”并且您希望通过一些简单的规则“自动化”这个,那么您需要能够区分应该重定向的 URL 和不应该重定向的 URL。应该重定向的 URL 有什么不同?如果您无法区分(即在 URL 模式中没有明显的差异),那么您将需要一一重定向。但是,如果 WordPress“知道”应该重定向哪些 URL,那么您可以在 WP 中执行重定向。 (?)
    猜你喜欢
    • 1970-01-01
    • 2013-02-06
    • 2012-02-27
    • 2018-07-11
    • 2017-10-06
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    相关资源
    最近更新 更多