根據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鏈接,所以我相應地解釋了我的問題,但是如果我誤解了這一點,那麼我會很感激見解。
呀,子模式有點怪異的看着我了。也許這是引用子模式的規則的先前版本的遺蹟。無論哪種方式,感謝您的見解。接受答案。 –