.htaccess使用网址中的多个连字符进行重定向

时间:2018-12-27 11:13:33

标签: .htaccess redirect

我们已经移动了网站,并决定删除所有旧新闻,如果可以的话,将重定向包含“-”的网址。

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

RedirectMatch 301 /气候变化威胁-暴露-冷战-秘密/?$ /新闻

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

RedirectMatch 301 / chiccot-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 /如果在冷战中发表评论,我们将如何退出/?$ /新闻

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

谢谢

1 个答案:

答案 0 :(得分:0)

如果每个新闻帖子至少有两个单词用-隔开,则以下内容应足够:

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

^与URL的开头匹配。
[^\-]与除-之外的所有匹配。
+保持与前一个规则匹配,并确保至少有一个匹配。
(?:开始一个非捕获组。
\--字符匹配。
[^\-]与除-之外的所有匹配。
+保持与前一个规则匹配,并确保至少有一个匹配。
)结束非捕获组。
+不断重复非捕获组,确保其至少匹配一次-该组以-开头并匹配至少一个字符,直到下一个-,因此,我们允许a-b-c-d... $与URL的末尾匹配,确保没有任何内容无法解析。