【问题标题】:.htaccess redirect with multiple hypens in url.htaccess 在 url 中使用多个连字符重定向
【发布时间】:2019-05-25 10:17:30
【问题描述】:

我们已经移动我们的网站并决定删除所有旧新闻,如果有办法重定向包含'-'的网址

这里是我们重定向的一些 URL 的示例。

RedirectMatch 301 /climate-change-threatens-expose-cold-war-secrets/?$ /news

RedirectMatch 301 /countdown-to-armed-forces-day-begins-in-liverpool/?$ /news

RedirectMatch 301 /chilcot-report-the-key-findings/?$ /news

RedirectMatch 301 /cold-war-nuclear-base-uncovered-ice-melts/?$ /news

RedirectMatch 301 /corbyn-refuses-guarantee-support-nato-allies/?$ /news

RedirectMatch 301 /comment-if-were-in-a-cold-war-how-do-we-get-out/?$ /news

是否可以使用“word1-word2-word3-OrEvenMoreWords”来重定向任何内容

谢谢

【问题讨论】:

    标签: .htaccess redirect


    【解决方案1】:

    如果每个新闻帖子至少有 2 个单词由 - 分隔,那么以下内容就足够了:

    RedirectMatch 301 ^[^\-]+(?:\-[^\-]+)+$ /news   # matches "my-post" or "my-long-post" but not "mypost" or "my--post"
    

    ^ 匹配 URL 的开头。
    [^\-] 匹配除 - 之外的所有内容。
    + 始终匹配上一个规则并确保至少匹配一个。
    @ 987654328@ 开始一个非捕获组。
    \- 匹配 - 字符。
    [^\-] 匹配除 - 之外的所有内容。
    + 不断匹配上一条规则并确保至少匹配一个。
    ) 结束非捕获组。
    + 不断重复非捕获组,确保它至少匹配一次 -该组以- 开头,并且至少匹配一个字符到下一个-,因此我们允许a-b-c-d... $ 匹配 URL 的结尾,确保没有任何内容未解析。

    【讨论】:

    • 谢谢你,我是新手,所以你能指出我正确的方向,这样我就能理解这一切意味着什么。非常感谢
    • 正则表达式本身还是整个.htaccess 行?我假设您对它们很熟悉,因为您在两者中都给出了自己的示例。对于正则表达式部分,您可以查看regex101.com 以使用您自己的输入测试正则表达式,并简要说明每个部分的作用以及它如何匹配输入。虽然有更多关于正则表达式的详细信息的来源,但如果您想了解更多信息,则必须在 Google 上搜索。
    • 非常感谢,我现在就去看看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    • 2019-04-16
    • 2021-04-05
    相关资源
    最近更新 更多