我想写RewriteRule,URL的某些部分不应该以特定的单词结尾。
网址如:
/en/drivers/drivername/play
但我希望(drivername)部分不是“以特定词语结尾,例如”排除“或”禁止“
换句话说,我想跟随URL工作:
/en/drivers/drivername/play
但是没有工作:
/en/drivers/drivername-excluded/play
/en/drivers/drivername-banned/play
但这应该有效:
/en/drivers/driver-excluded-name/play
/en/drivers/driver-banned-test/play
甚至可能吗?
没有排除部分我正在使用:
^(en|de)/([^\/]+)/(play|test)?
答案 0 :(得分:1)
尝试这样的事情,使用否定前瞻:
(en|de)\/([^\/]+)\/driver.+-(?!(excluded|banned)\/).*?\/(play|test)?
我拿了你的正则表达式并插入了处理“drivername”的位
driver.+-(?!(excluded|banned)\/).*?
在这种情况下,(?!(excluded|banned)\/)
确保正斜杠之间的“驱动程序”部分不会在下面的正斜杠之前直接以“排除”或“禁止”结束。
https://regex101.com/r/pC8sP3/3
这似乎与您提供的示例一起使用。