我正在清理一个大 .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 中?
最佳答案
而是使用以下重写器
RewriteRule ^(.*)$ front.php/$1 [L]
并通过
front.php
中的路径信息访问文件夹:$pathinfo = $_SERVER['PATH_INFO'];
您也可以启用
MultiViews
在 Apache 中并将其配置为使用 front.php
作为索引文件,并以相同的方式获取路径信息。
关于apache - 清理嵌套的 mod_rewrite 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2219098/