正则表达一直是我的烦恼。每次我觉得我终于明白了,我有一个新问题!
我想抓住这样的网址:
http://www.mydomain.com/boutique/blabla-1/bla-bla2/99/104
http://www.mydomain.com/boutique/blabla1/99
并最终:
http://www.mydomain.com/boutique/blabla-1/bla-bla2/product1/99/104/55/
经过大量尝试和错误之后,我想出了这个似乎适用于http://www.gskinner.com/RegExr/但不适用于apache
^.*/boutique/([a-zA-Z-]*)(/?[a-zA-Z-]*)/?([0-9]*)/?([0-9]*)/?$ boutique.php?c1=$3&c2=$4
(到目前为止,我只使用前两个网址)
我的apache重写日志调试文件很无奈:
通过/Users/iko/Sites/mysite/boutique.php
我只对获得ids感兴趣。我们欢迎任何帮助!
谢谢。
答案 0 :(得分:0)
RewriteRule ^boutique/(?:[a-zA-Z][\w-]*/){1,3}/(\d+)(?:/(\d+)(?:/(\d+))?)?/?$ boutique.php?c1=$1&c2=$2&c3=$3
答案 1 :(得分:0)
我个人喜欢为每种类型编写一条规则,因为我发现它更清晰(特别是如果htaccess是你的bug)
即
### Rewrite rule for /boutique/blabla-1/bla-bla2/99/104
RewriteRule ^boutique/([a-z0-9-]+)/([a-z0-9-]+)/([0-9]+)/([0-9]+) boutique.php?c1=$3&c2=$4
解释不同的位 ([a-z0-9 - ] +)基本上都是小写字母,数字和连字符。 类似地([0-9] +)仅用于数字和连字符
希望这有帮助