我在.htaccess文件中设置了以下配置。
我可以使用当前请求的域名并阻止对域名进行硬编码,而不是对域名(domain.com)进行硬编码吗?
另外,这样安全吗?硬编码当然保证了正确的域名,但我正在考虑“抓住当前域名”方法是否会导致其他问题(特别是前面两个例子)。
# Allow cross-domain requests
#
SetEnvIf Origin "^http(s)?://(.+\.)?(domain\.com)$" origin_is=$0
Header add Access-Control-Allow-Origin %{origin_is}e env=origin_is
Header add Access-Control-Allow-Credentials: true
# CSP
#
Header set Content-Security-Policy "default-src 'none'; connect-src http://domain.com https://domain.com;"
# Set domain name as a variable
#
RewriteRule .* - [E=domain_name:domain.com]
# Redirect non-secure (HTTP) traffic to secure (HTTPS)
#
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteRule ^(.*)$ https://%{ENV:domain_name}/$1 [R=301,L]
答案 0 :(得分:1)
您可以使用已填充Apache的%{HTTP_HOST}
env变量。
RewriteCond %{ENV:HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]