也許我正在監督一些非常基本的東西,htaccess並不是我的專業領域。.htaccess將HTTPS強制添加到現有的重寫規則
我的網站是HTTPS只,實現這一點,根文件夾/文件包含這些行:
RewriteEngine On
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [R=301,L]
這一切正常。現在我們有一個名爲/項目的新文件夾,其中包含了自己的htaccess的規則,由一個名爲/projects/project.html
文件夾/項目內的工作htaccess文件在數據庫中查詢翻譯網址是:
RewriteEngine On
RewriteBase /projects/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ project.html?project=$1 [QSA,L]
現在我想強制https連接,因爲如果您直接訪問http://URL,主目錄中的https規則不適用於/ projects。因此,我修改了文件:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://example.com%{REQUEST_URI} [R=301,L,NE]
RewriteBase /projects/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ project.html?project=$1 [QSA,L]
據此,切換到HTTPS,但我不斷收到「ERR_TOO_MANY_REDIRECTS」。
當我改變行作爲@thickguru建議,像這樣:
RewriteRule ^(.*)$ https://example.com/$1 [R,L]
它將我重定向到https://example.com/index.html
的時候了。
我擺弄的設置,也與this post的信息,但是我仍然無法得到它的工作。
你使用的是什麼版本的Apache? – starkeen
我不確定我是否給出了正確的答案,但是phpinfo提到了Apache2 API版本20051115.如果我需要去別的地方看看,請告訴我:) – SJDS