Apache 2中的条件重写:这两个是相同的吗?

时间:2011-04-04 11:07:56

标签: regex apache mod-rewrite apache2 conditional

可以......

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]

如果是这样,它们的功能是否完全相同?
建议/改进非常感谢。

1 个答案:

答案 0 :(得分:1)

它们是相同的,|代表OR,所以如果它以/folder1//folder2//folder3/开头,则执行重定向。

所以是的,它会更短,并且可以满足您的需求。

正如佩卡尔斯基建议你可以缩短它:

^/folder[1-3]/

可以在以下位置找到更多示例和参考: http://semlabs.co.uk/journal/mod_rewrite-quick-reference-and-cheat-sheet