根据a DreamHost article on enforcing HTTPS模式“^”和“^(。*)$”会导致不同的RewriteRule行为,但我不明白为什么。
根据文章,用“^”如下“强迫任何HTTP请求使用HTTPS被改写”:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
同样的文章说,而是使用的“^ $(*)。” RewriteRule中的“^”也强制直接链接的资源(图像,css等)使用https“。
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
为什么RewriteRule中的“^(。*)$”适用于页面资产,而“^”不是?除了文章提到的区别之外,还有一些元素,比如相对网址和绝对网址? Apache HTTP Server如何知道资源是页面资源而不是直接请求?顺便说一下,我已经将“直接链接的资源”解释为专门提到页面资产,而不是通常意义上的HTTP链接,所以我相应地解释了我的问题,但是如果我误解了这一点,那么我会很感激见解。
呀,子模式有点怪异的看着我了。也许这是引用子模式的规则的先前版本的遗迹。无论哪种方式,感谢您的见解。接受答案。 –