재작성 규칙을 디버깅할 수 있도록 재작성 로깅을 활성화하고 싶지만 RewriteLog 지시문을 추가하면 500 오류가 발생합니다.
버전 정보:
Ubuntu 14.04
Server version: Apache/2.4.12 (Ubuntu)
Server built: Feb 4 2015 14:22:06
내용.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog /var/log/apache2/rewrite.log
RewriteLogLevel 5
RewriteBase /
RewriteRule ^/wordpress/wp-content/(.*)$ /wp-content/$1 [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
오류 로그에 다음이 표시됩니다.
/var/www/path.to/wordpress/.htaccess: Invalid command 'RewriteLog', perhaps misspelled or defined by a module not included in the server configuration
답변1
파일 에서 로깅을 구성할 수 없다는 사실을 잊은 것 외에도 .htaccess
이는 Apache 버전 문제인 것으로 밝혀졌습니다. RewriteLog 지시문은 최신 버전에서 대체되었으며 Virtualhost 구성에 다음을 추가하면 로그 다시 쓰기가 활성화되었습니다.
LogLevel alert rewrite:trace3 (can be increased to trace8)
매뉴얼에서:
이전 버전의 mod_rewrite에 익숙한 사람들은 의심할 바 없이 RewriteLog 및 RewriteLogLevel 지시어를 찾을 것입니다. 이 기능은 위에서 언급한 새로운 모듈별 로깅 구성으로 완전히 대체되었습니다.
오류 로그에서 이러한 메시지를 필터링하려면 다음과 같이 할 수 있습니다.
tail -f error_log|fgrep '[rewrite:'
답변2
나는 반복하지 않을 수 없다:
.htaccess를 사용하고 ServerFault에 대해 문의하는 대부분의 사람들은 관리자를 위한 최종 사용자 솔루션이 아니기 때문에 처음부터 .htaccess를 사용해서는 안 됩니다.
당신은해야.htaccess 파일을 완전히 사용하지 마십시오.httpd 주 서버 구성 파일에 대한 액세스 권한이 있는 경우. 파일을 사용하면
.htaccess
Apache http 서버 속도가 느려집니다. .htaccess 파일에 포함할 수 있는 모든 지시문은 디렉터리 블록에 설정하는 것이 더 좋습니다. 더 나은 성능으로 동일한 효과를 얻을 수 있기 때문입니다.
원천: 아파치 매뉴얼
분명히 자신의 구성을 게시하는 대부분의 사람들은카고 컬트 프로그래머이유를 이해하지 못한 채 맹목적으로 .htaccess 파일을 복사하는 데 열심입니다.
귀하의 문제는 대표적인 예입니다.RewriteLog
지시문은 다음에서만 유효합니다.문맥서버 구성이나 가상 호스트...
즉, 그렇다는 뜻이다허용되지 않음파일 로 .htaccess
!