我試圖強制使用運行表達式引擎的網站的.htaccess進行HTTPS。 截至目前,您可以使用https://訪問該網站,但是當我添加這些規則時,它會顯示重定向循環。在表達式引擎重定向循環上強制HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
或
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
或
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://mydomain.com/$1 [R,L]
,也看中了這一個
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule !/status https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
,我也試着重新安排所有的規則對他們每個人如此我很確定它有什麼關係條件匹配時,他們不應該。
我也看到了有關負載平衡器重定向的事情有些事情從這裏專櫃的.htaccess : .htaccess redirect loop when trying to add forced HTTPS rule (Amazon Elastic Beanstalk)這裏:https://serverfault.com/questions/283525/force-ssl-on-one-page-via-htaccess-without-looping
我覺得我的客戶正在使用INMOTION託管,但我用不上到負載均衡器設置,所以我想確保這是問題。
這裏是整個htaccess。我刪除了一些默認的表達式引擎,但是在我這樣做之前它也沒有工作。
<IfModule mod_rewrite.c>
# Enable Rewrite Engine
# ------------------------------
RewriteEngine On
RewriteBase/
# RewriteCond %{HTTPS} off
# RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# RewriteCond %{HTTP:X-Forwarded-Proto} !https
# RewriteRule !/status https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
# Redirect index.php Requests
# ------------------------------
RewriteCond %{THE_REQUEST} ^[^/]*/index\.php [NC]
RewriteCond %{THE_REQUEST} ^GET
RewriteRule ^index\.php(.+) $1 [R=301,L]
# Standard ExpressionEngine Rewrite
# ------------------------------
RewriteCond $1 !\.(css|js|images|gif|jpe?g|png) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
(我有他們禁用,因爲該網站是活的)