Amazon web services 这两段代码之间有什么区别?
这两个代码段都将http重定向到https,但其中一个适用于AWS cloudfront发行版,而另一个不适用。就其本身而言,这两种方法都很好。这两段代码之间有什么区别Amazon web services 这两段代码之间有什么区别?,amazon-web-services,redirect,mod-rewrite,https,amazon-cloudfront,Amazon Web Services,Redirect,Mod Rewrite,Https,Amazon Cloudfront,这两个代码段都将http重定向到https,但其中一个适用于AWS cloudfront发行版,而另一个不适用。就其本身而言,这两种方法都很好。这两段代码之间有什么区别 RewriteEngine On RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1) RewriteRule ^/(.*) https://example.com/$1 [R,L] 好吧,这两个之
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
RewriteRule ^/(.*) https://example.com/$1 [R,L]
好吧,这两个之间有一些不同 第一个块将重定向到* 如果
HTTPS
未启用
如果HTTP\u HOST
既不是localhost
也不是127.0.0.1
第二个块将重定向到与使用https协议的请求中使用的主机相同的主机
例如:
发件人:http://www.example.com/test?1=2&3=4
收件人:https://www.example.com/test?1=2&3=4
如果HTTPS
不在上,或者HTTP\u主机
是www.example.com
(案例生效)
由于它将重定向到与来自请求的主机相同的主机,因此很可能会创建一个无限循环。关键区别在于您的条件中指定的[或]
标志
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]