mod_rewrite $ 1给了我错误的值

时间:2012-01-30 17:39:25

标签: php apache mod-rewrite

我在/ 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”。

我做错了什么?我无法弄清楚这一点。

1 个答案:

答案 0 :(得分:2)

通过在另一个规则之前添加以下规则来解决此问题。

RewriteRule     ^index.php$ - [L]

TerryE指出:

  

在perdir上下文中,重写引擎循环遍历.htaccess   文件,直到它得到一个干净的传递。

换句话说,mod_rewrite重写了两次url,因为第一次重写的结果也符合规则。