他のドメインへのリダイレクトを防ぐために、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://[Eメール保護]/欠けている場所/

関連情報