apache - 清理嵌套的 mod_rewrite 语句

标签 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 中?

最佳答案

而是使用以下重写器

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/

相关文章:

regex - 具体来说,RewriteCond %{QUERY_STRING}

.htaccess - 如何在 .htaccess 或 php.ini 中使用 gzip?

regex - 重写规则 : cannot compile regular expression - apache 2. 4.9

android - 服务堆栈的基本身份验证

apache - 是否可以在 httpd.conf 中使用变量

.htaccess 301 http ://redirect to https://not being indexed by Google

.htaccess 重写而不影响相对的 image/css/js URL?

wordpress - 301 重定向不起作用 (WordPress) - [ URL 中带有 ?m=1 的 Probler ]

apache - 为什么我们需要Hadoop发行版?

php - Chrome favicon.ico GET 请求