regex - Nginx (Perl) 正则表达式从一个 URL 重新路由到另一个
问题描述
我有一个 wordpress 博客,其中有一系列带有自己的 slug 的帖子。最近我注意到人们访问 mysite.com/my-slug/&somestuff 的合法 404 错误。或 mysite.come/my-slug/somestuff。我不知道他们从哪里得到“一些东西”,但我希望能够防止这种情况发生。
我写了一个正则表达式从 mysite.com/my-slug/anything 重新路由到 mysite.com/my-slug/
^/easy-fluffy-american-pancakes/.+
这工作得很好。差不多吧。事实证明,我对任何帖子的打印友好视图是
^/easy-fluffy-american-pancakes/print/1234
1234 是帖子 ID。所以现在,这也被重定向到帖子。如何从重定向中排除打印?
^/easy-fluffy-american-pancakes/(.+)|(?!print/[0-9]*/)
我不能让它工作。要么不匹配,要么我收到太多重定向。
解决方案
关
^/easy-fluffy-american-pancakes/(?!print/[0-9]).+
读(?!...)
作“后面没有……”。从 , 外部的角度来看(?!...)
,(?!...)
不匹配任何东西,所以在..+
之后立即开始匹配/
。
推荐阅读
- c# - .Net Core JsonElement 解析多嵌套动态 JSON
- java - 在不触发 Hibernate 延迟加载的情况下访问哈希码
- amazon-web-services - Cloud Formation 条件资源属性 AWS Backup Resource
- python - 当 x.replace("y", " ") 但 "y" 仍在列表中时没有错误
- python - numpy 数组中的索引
- python - Docker POSTGRESQL - 使用字符串和字节数据插入多行
- snowflake-cloud-data-platform - Snowflake & GoodData 错误“所有项目加载失败”
- jboss-logging - 在消息中添加类别的可能性?
- postgresql - 根据时间戳删除实时 dB 上的大数据
- reactjs - ReactDOMServer.renderToString() - 它到底是做什么的?