无法让我的多个正则表达式适用于URL结构中的特定情况

时间:2016-04-06 00:24:04

标签: php regex url mod-rewrite seo

我正在尝试将regex与我的网址结构相匹配:

SPECIFIC CASE #1:
http://www.example.com/webapp/some-text.html
http://www.example.com/webapp/some-text-a1.html
http://www.example.com/webapp/some-a2-text.html

SPECIFIC CASE #2:
http://www.example.com/webapp/first-text-vs-some-text.html
http://www.example.com/webapp/first-text-a1-vs-sec-b2-text.html
http://www.example.com/webapp/first-text-a1-vs-sec-b2-text-vs-third-c3-text.html
http://www.example.com/webapp/some-text-a1-vs-sec-text-b2-vs-third-text-vs-last-text-c1.html

SPECIFIC CASE #3:
http://www.example.com/webapp/sub-app/some-text-a1.html 

我的正则表达式是:

SPECIFIC CASE #1:
\/webapp\/(.*)\.html

SPECIFIC CASE #3:
\/webapp\/sub-app\/(.*)\.html

案例#1和#3正在运作。但是对于#2来说,所有人都包括#1。

问题是我的Web应用程序是结构化的如果我访问上面的示例链接一些工作和其他给我错误404.

我认为我的正则表达式是错误的,因为我有多个案例。目前它仅适用于特定情况#1。

我的猜测是,我上面的正则表达不是那么好。我需要多重正则表达式吗?哪一个?

正则表达式是否有办法检查价值" vs"在给定的URL中存在(一次或多次)?

是否存在任何想法或更好的解决方案?

任何帮助将不胜感激!

非常感谢!

1 个答案:

答案 0 :(得分:1)

这个正则表达式怎么样:

/\/webapp\/(.*)(-vs-.*)+\.html/

此正则表达式匹配任何重复的-vs-.*一次或多次。

示例:https://3v4l.org/2gWlN