试图整理.htaccess并删除域名的硬编码

时间:2014-05-03 10:01:45

标签: apache .htaccess mod-rewrite apache2

我在.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]

1 个答案:

答案 0 :(得分:1)

您可以使用已填充Apache的%{HTTP_HOST} env变量。

RewriteCond %{ENV:HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]