2015-08-09 4 views
0
  • У меня есть файл «/forms/Fuser.pm» в корне документа.
  • В браузере я должен поставить этот URL: "http://server/user"
  • Rewrite необходимо запустить этот файл: "/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 

версия сервера: Apache/2.4.10 (Fedora)

+1

Set LogLevel переписать: trace8 и прекратить угадывание. – covener

+0

** LOG показывает: ** "... RewriteCond: input = '/ data/server/web // forms/F/user.pm' pattern = '- f' => несоответствие – perLHawk

ответ

1

REQUEST_URI содержит косую черту!

Вы должны сначала извлечь URI без косой черты из% {REQUEST_URI}! Затем вы можете попробовать проверить файл.

RewriteCond %{REQUEST_URI} ^\/(.*)$ 
RewriteCond %{DOCUMENT_ROOT}forms/F$1.pm -f 
RewriteRule ^(.+)$ %{DOCUMENT_ROOT}/cgi-bin/form.pl?form=$1 [QSA,L] 
Смежные вопросы