80을 443으로 리디렉션하는 다음 가상 호스트가 있습니다.
<VirtualHost *:80>
ServerName site.mydomain.com
ServerAlias www.site.mydomain.com
DocumentRoot /srv/htdocs
Redirect permanent / https://site.mydomain.com
<Directory /srv/htdocs>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
문제는 다음과 같은 다른 사이트로의 리디렉션을 방지하지 못한다는 것입니다.
http://site.mydomain.com///.s3.amazonaws.com
http://site.mydomain.com/@google.com/
이런 종류의 문제를 해결할 수 있는 다시 쓰기 규칙은 무엇입니까?
답변1
이것이 당신의 문제를 해결해줄까요?
RedirectMatch "^/$" "https://site.mydomain.com"
리디렉션... 라인을 대체해야 합니다.
RedirectMatch가 리디렉션됩니다.http://site.mydomain.com도착하다https://site.mydomain.com, 하지만http://site.mydomain.com/about. 후자를 달성하려면 다음 재작성 규칙을 사용할 수 있습니다(리디렉션 줄 대신).
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
답변2
/
리디렉션 URL에 후행 추가:
Redirect permanent / https://site.mydomain.com/
그것 없이는, 예를 들어http://site.mydomain.com/@google.com/로 리디렉션되다https://[이메일 보호됨]/누락된 장소 /
.