我有以下虚拟主机重定向 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://[电子邮件受保护]/缺少的地方/
。