다음과 같은 경우입니다.mod_rewrite는 각각의 재 작성 규칙 후에 {REQUEST_FILENAME}을 평가합니까?
RewriteEngine On
RewriteBase /app/webroot/
RewriteRule ^(.*)$ $1 [QSA]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
두 번째 규칙의 RewriteConds가 첫 번째 RewriteRule의 결과를 사용합니까?
예를 들어, /onestaticfile.txt
을 요청하고 해당 파일이/app/webroot에 실제로 존재한다면 최종 URL은 /app/webroot/index.php?url=onestaticfile.txt
대신 /app/webroot/onestaticfile.txt
이 될 것입니다.
가상 호스트 (.htaccess에 없음)에'RewriteEngine On','RewriteLogLevel 9','RewriteLog/path/to/a/rewrite.log'를 추가하고 무슨 일이 일어나는 지보십시오. – regilero
Apache 2.4에서'LogLevel warn rewrite : trace8'과 같은 것입니다. 'RewriteLogLevel'이 제거되었습니다. –