.htaccess - .htaccess 在 url 中使用多个连字符重定向
问题描述
我们已经移动了我们的网站并决定删除所有旧新闻,如果有办法重定向包含“-”的网址
这是我们重定向的一些 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”来重定向任何内容
谢谢
解决方案
如果每个新闻帖子至少有 2 个单词,-
那么以下内容就足够了:
RedirectMatch 301 ^[^\-]+(?:\-[^\-]+)+$ /news # matches "my-post" or "my-long-post" but not "mypost" or "my--post"
^
匹配 URL 的开头。
[^\-]
匹配除-
.
+
保持匹配之前的规则,并确保至少匹配一个。
(?:
开始一个非捕获组。
\-
匹配-
字符。
[^\-]
匹配除-
.
+
保持匹配之前的规则,并确保至少匹配一个。
)
结束非捕获组。
+
不断重复非捕获组,确保它至少匹配一次 - 该组以-
至少一个字符开始并匹配到下一个字符,-
因此我们允许a-b-c-d...
$
匹配 URL 的结尾,确保没有任何内容未解析。
推荐阅读
- angular - Angular 材质选项卡中动态加载的内容
- ffmpeg - ffmpeg:如何强制 divx5 标签?
- sql - 在 R 中提取 XML sqlQuery 问题 - 查询 Clob 列
- azure-cosmosdb - 使用 .NET SDK 未正确设置空间索引类型
- python - 如何在xhtml2pdf中将阿拉伯字符导出为pdf?
- android - iOS 和 Android 上的最大并发蓝牙 LE 设备?
- python - 如何成功单击与 Python 和 Selenium 的链接?
- c# - 向富文本框组件添加事件
- javascript - 延迟除特定项目外的所有项目
- python-3.x - Python中具有指数分布的马尔可夫链