我需要重写/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)