相关疑难解决方法(0)

为什么Apache mod_rewrite重写了两次我的URL?

我需要重写/admin/page/createURL /backend/www/index.php/page/create,所以我使用下一个Apache重写规则和条件:

RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteCond %{REQUEST_URI} !backend\/www

RewriteRule admin\/(.*)$ backend/www/index.php/$1 [NS,L]
Run Code Online (Sandbox Code Playgroud)

但是,检查重写日志,我看到Apache正确地重写了URL,但最后它会考虑/page/createURL 执行额外的重写,这与任何条件都不匹配,因此它失败并且我收到"未指定输入文件".错误.

如何防止Apache执行额外的重写?我使用了NS标志和RewriteCond %{IS_SUBREQ} f条件,它也执行子请求.

谢谢!

80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a35d60/initial] (2) init rewrite engine with requested uri /admin/page/create
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a35d60/initial] (1) pass through /admin/page/create
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a35d60/initial] (3) [perdir /home/daniloaz/dev.daniloaz.com/httpdocs/] add path info postfix: /home/daniloaz/dev.daniloaz.com/httpdocs/admin -> /home/daniloaz/dev.daniloaz.com/httpdocs/admin/page/create
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a35d60/initial] (3) [perdir …
Run Code Online (Sandbox Code Playgroud)

apache mod-rewrite url-rewriting

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

apache ×1

mod-rewrite ×1

url-rewriting ×1