2015-08-09 88 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]