RewriteCond - 带路径的文件测试不成功

时间:2015-08-09 06:43:52

标签: apache mod-rewrite

  • 我在文档根目录中有“/forms/Fuser.pm”文件。
  • 在浏览器中,我需要输入以下网址:“http://server/user
  • 重写必须运行此文件:“/ cgi-bin/form.pl?form=Fuser.pm”

Htaccess包含:

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

服务器版本:Apache / 2.4.10(Fedora)

1 个答案:

答案 0 :(得分: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]