清理嵌套的mod_rewrite语句

时间:2010-02-08 01:08:55

标签: apache .htaccess mod-rewrite

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

杂乱的最大部分来自于发现各种各样的

的陈述
/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...的任何深度并将相应的level变量放入RewriteRule中?

1 个答案:

答案 0 :(得分:2)

而是使用以下重写

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

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

$pathinfo = $_SERVER['PATH_INFO'];

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