2015-08-09 52 views
0
  • 我在文档根目录下有文件“/forms/Fuser.pm”。
  • 在我需要把这个网址的浏览器: “http://server/user
  • 重写,必须运行此文件: “/cgi-bin/form.pl?form=Fuser.pm”

的.htaccess包含:RewriteCond - 路径文件测试不成功

RewriteCond %{DOCUMENT_ROOT}/forms/F%{REQUEST_URI}.pm -f 
RewriteRule ^(.+)$ %{DOCUMENT_ROOT}/cgi-bin/form.pl?form=$1 [QSA,L] 

日志显示:

`... RewriteCond: input='/data/server/web//forms/F/user.pm' pattern='-f' =>`not-matched 

Server版本:阿帕奇/ 2.4.10(Fedora的)

+1

设置LogLevel重写:trace8并停止猜测。 – covener

+0

** LOG显示:**“... RewriteCond:input ='/ data/server/web // forms/F/user.pm'pattern =' - f'=>不匹配 – perLHawk

回答

1

REQUEST_URI包含斜杠!

您必须首先从%{REQUEST_URI}中提取没有斜杠的URI! 然后你可以尝试文件测试。

RewriteCond %{REQUEST_URI} ^\/(.*)$ 
RewriteCond %{DOCUMENT_ROOT}forms/F$1.pm -f 
RewriteRule ^(.+)$ %{DOCUMENT_ROOT}/cgi-bin/form.pl?form=$1 [QSA,L]