正则表达式以匹配OpenCart url格式

时间:2012-01-05 23:25:16

标签: regex expression opencart

我需要一个正则表达式来匹配此URL以启用URL重写。

http://www.somewhere.com/index.php?route=common/home

这是一个OpenCart网站。

更新:

我正在尝试使用正则表达式在IIS7上执行URL重写。 URL的第一部分不需要精确的域名匹配,但我需要获得如下结果的URL

http://www.somewhere.com/common/home

2 个答案:

答案 0 :(得分:0)

你没有指定你这样做的语言(protip:并非所有的regexp实现都有相同的规则)所以我在python中解决它:

>>> import re
>>> pattern = '([^/]+)//([^/]+)/index\.php\?route=([^ ]+)'
>>> repl = '\\1//\\2/\\3'
>>> url = 'http://www.somewhere.com/index.php?route=common/home'
>>> re.sub(pattern, repl, url)
'http://www.somewhere.com/common/home'

答案 1 :(得分:0)

url rewrite获取域名后的url和初始/并使用 route 参数通过GET将其传递给index.php,所以

http://www.yourdomain.com/common/home

变为

http://www.yourdomain.com/index.php?_route_=common/home

url重写控制器使用_route_来计算出要使用的正确页面/路由。请注意,要反转该过程(创建网址),您只需在设置页面上启用网址重写即可启用它们

也就是说,默认情况下,网址重写仅适用于产品,类别,制造商和信息页面 - 因此您无法为公共/家庭路线执行此操作。有些模块可以做到这一点,甚至允许你进一步自定义网址,比如我的Uber SEO模块,尽管这不仅仅是改变基本网址