Apache 2中的条件重写:这两个是相同的吗?
问题描述:
RewriteCond %{REQUEST_URI} ^/folder1/ [OR]
RewriteCond %{REQUEST_URI} ^/folder2/ [OR]
RewriteCond %{REQUEST_URI} ^/folder3/
RewriteRule (.*)/[R=301,L]
...改写为...
RewriteCond %{REQUEST_URI} ^/(folder1|folder2|folder3)/
RewriteRule (.*)/[R=301,L]
?
如果是这样,他们是绝对相同的功能?
建议/改进非常感谢。
答
他们是同样的事情,在|
代表OR
所以如果它开始与/folder1/
或/folder2/
或/folder3/
做重定向。
因此,它会更短,并满足您的需求。
由于Pekalski建议你可以把它用更短:
^/folder[1-3]/
几个例子和参考文献,可以发现: http://semlabs.co.uk/journal/mod_rewrite-quick-reference-and-cheat-sheet
感谢@Prix,这似乎是这样的!如果你把它作为答案,我会+1接受它! – Sam 2011-04-04 11:28:07
你可以缩短它:'^/folder [1-3] /' – 2011-04-04 11:29:09
此外,请注意,在每种情况下,您的URI必须始终以斜杠结尾,如果您希望它是可选的,请更改结尾斜杠,**/**, 至 **/?**。问号** ** **代表** 0 **或** 1 **出现在它之前的文字。在这种情况下,斜线。 – 2011-04-04 11:33:52