다른 도메인으로의 리디렉션을 방지하기 위해 http에서 https로 리디렉션

다른 도메인으로의 리디렉션을 방지하기 위해 http에서 https로 리디렉션

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://[이메일 보호됨]/누락된 장소 /.

관련 정보