Apache 正在尝试整理.htaccess并删除域名的硬编码

Apache 正在尝试整理.htaccess并删除域名的硬编码,apache,.htaccess,mod-rewrite,apache2,Apache,.htaccess,Mod Rewrite,Apache2,我在.htaccess文件中设置了以下配置 我可以使用当前请求的域并防止对域名进行硬编码,而不是对域名(domain.com)进行硬编码吗 还有,安全吗?当然,硬编码保证了域的正确性,但我试图思考“获取当前域名”方法是否会导致其他问题(特别是下面的前两个示例) 您可以只使用已由Apache填充的%{HTTP_HOST}env变量 RewriteCond %{ENV:HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] 谢

我在.htaccess文件中设置了以下配置

我可以使用当前请求的域并防止对域名进行硬编码,而不是对域名(domain.com)进行硬编码吗

还有,安全吗?当然,硬编码保证了域的正确性,但我试图思考“获取当前域名”方法是否会导致其他问题(特别是下面的前两个示例)


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

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

谢谢这安全吗?可以依赖Apache HTTP_主机变量吗?它能被第三方操纵吗?不,它不能被操纵。想想看。。如果HTTP_主机无效,它们甚至不会访问您的web服务器谢谢您的帮助,这回答了最后一部分的问题,但我认为在设置内容安全策略时无法使用变量。我认为这可能是不可能的,它必须是硬编码的。是的,
%{HTTP_HOST}
可以在
mod_rewrite
中使用,也可能在
mod_setenv
中使用。好的,谢谢。此外,我需要保证该值不包括“www”部分,其中包括。使用%{SERVER_NAME}是否更好(只要我将虚拟主机中的SERVER_NAME设置为'domain.com')。它没有“www”部分。服务器名称是否合适且安全?
RewriteCond %{ENV:HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]