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メール保護]/欠けている場所/
。