Apache-Httpd
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/
哪個重寫規則可以解決這樣的問題?
這能解決你的問題嗎?
RedirectMatch "^/$" "https://site.mydomain.com"
它應該替換您的 Redirect… 行
RedirectMatch 會將http://site.mydomain.com>重定向到<https://site.mydomain.com>,但不會重定向到<http://site.mydomain.com/about。為了實現後者,您可以使用以下重寫規則(同樣,代替您的 Redirect 行):
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
將尾隨添加
/
到您的重定向 URL:Redirect permanent / https://site.mydomain.com/
沒有它,例如http://site.mydomain.com/@google.com/>會被重定向到<https://site.mydomain.com@google.com/失去的地方
/
。