清理嵌套的mod_rewrite语句

我正在清理包含大量mod_rewrite语句的大型.htaccess文件。

混乱的最大部分来自于各种事件的发言

 /directory1 /directory1/directory2 /directory1/directory2/directory3 

使用类似的语句

 RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+)$ RewriteRule .* /front.php?level1=%1&level2=%2&%{QUERY_STRING} [L] RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+)/([^/]+)$ RewriteRule .* /front.php?level1=%1&level2=%2&level3=%3&%{QUERY_STRING} [L] 

有人熟练的mod_rewrite给了我一个关于如何编写一个通用语句的指针,可以捕捉到directory1/directory2...任何深度,并把适当的levelvariables放到RewriteRule中?

而是使用下面的重写

 RewriteRule ^(.*)$ front.php/$1 [L] 

并通过front.php的pathinfo访问文件夹:

 $pathinfo = $_SERVER['PATH_INFO']; 

您也可以在Apache中启用MultiViews并将其配置为使用front.php作为索引文件,并以相同的方式获取pathinfo。