
내 안에는 httpd.conf
다음이 있습니다:
<FilesMatch "^\.ht">
Order allow,deny
Deny from all
</FilesMatch>
그리고 내 .htaccess
파일에는 다음이 있습니다.
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
HTTP를 할 때 example.com/.ht
로 리디렉션될 것으로 예상 www.example.com/.ht
하지만 대신 RewriteRule이 발생하지 않습니다. 클라이언트는 결코 www로 리디렉션되지 않습니다. 다른 모든 경우에는 클라이언트가 올바르게 리디렉션됩니다.
ErrorDocument 지시어가 없습니다.
왜 이런 일이 발생하는지, 403에서 이 동작을 수정하는 방법이 궁금합니다.
답변1
httpd.conf에 액세스할 수 있으므로 .htaccess를 사용할 이유가 없습니다.
FilesMatch는 어떤 컨텍스트인가요? 그것은 가상 호스트 안에 있습니까?
다음은 동일한 결과를 얻지만 더 나은 결과를 얻습니다.
<VirtualHost *:80>
ServerName example.com
Redirect / http://www.example.com/
</VirtualHost>
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/something
</VirtualHost>
이상한 부작용도 없습니다.