我正在清理一个包含大量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的任何深度……并将适当的级别变量放入RewriteRule中?
最佳答案 而是使用以下重写
RewriteRule ^(.*)$front.php/$1 [L]
并通过front.php中的pathinfo访问文件夹:
$pathinfo = $_SERVER['PATH_INFO'];
您也可以在Apache中启用MultiViews并将其配置为使用front.php作为索引文件,并以相同的方式获取pathinfo.