我在/ backend文件夹中有以下.htaccess:
RewriteEngine On
RewriteBase /backend
RewriteRule ^(.*)\.php$ index.php?path=$1 [L]
当我访问http://mysite.com/backend/test/pages/dashboard.php
$ _GET ['path']时,返回字符串“index”而不是“test / pages / dashboard.php”。
我做错了什么?我无法弄清楚这一点。
答案 0 :(得分:2)
通过在另一个规则之前添加以下规则来解决此问题。
RewriteRule ^index.php$ - [L]
TerryE指出:
换句话说,mod_rewrite重写了两次url,因为第一次重写的结果也符合规则。在perdir上下文中,重写引擎循环遍历.htaccess 文件,直到它得到一个干净的传递。