使用apache重写 我想将网址重定向到具有特定模式的文件
images/gallery/photos/album/thumb/image.jpg
images/gallery/photos/album/view/image.jpg
images/gallery/photos/album/image.jpg
使用正则表达式我想匹配(照片/相册/)作为一部分 如果提供,则返回(thumb | view) 最后返回url的最后一部分(image.jpg)
我的最终方法是
^images/gallery/(.*/)*((view|thumb)/)+(.*)$
Array
(
[1] => photos/album/
[2] => thumb/
[3] => image.jpg
)
如果提供ONLY(view | thumb),哪个工作完美,但如果用+
替换?
,则正则表达式返回images/gallery/thumb/
而不传递(拇指)作为部分
^images/gallery/(.*/)*((view|thumb)/)?(.*)$
Array
(
[1] => photos/fresh-water-fish/thumb/
[2] =>
[3] => Plant_Aquarium.jpg
)
获得(view | thumb)if
提供的最佳解决方案是什么
答案 0 :(得分:2)
答案 1 :(得分:1)
^images/gallery/(\w+/\w+)/?(view|thumb)?/?([^/]*)$
这个匹配:
$1 : "photo/album"
$2 : "view", "thumb" or ""
$3 : "image.jpg"
答案 2 :(得分:0)
尝试使用而不是
images/gallery/(.*/)*((view|thumb)/)?(.*)$
这一个:
images/gallery/(.*/)*((view|thumb)?/)(.*)$
我不敢为什么贪婪的正则表达式?'不要在小组上工作,但它在具体价值方面运作良好(' [1,2]','。','(text | text2) '等。)