我遗漏了一些简单的东西,我确信,一些见解会非常有帮助。我正在使用cpanel在vps上设置网站。我试图让它总是重定向到https而不是两者都可用,我可以在没有cpanel的情况下做到这一点,但是当cpanel参与其中时似乎很难过。我看到了这个,但它没有帮助 https://www.namecheap.com/support/knowledgebase/article.aspx/9770/38/how-to-force-https-using-htaccess-file-in-cpanel
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
RewriteCond %{HTTPS} on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
答案 0 :(得分:0)
尝试像这样写RewriteRule
:
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L,NE]
在测试之前,请确保清除缓存。我已将标记设置为R
,但如果您对重定向感到满意,请将其更改为R=301
,因为这会使其成为永久重定向。
答案 1 :(得分:0)
您始终可以使用其他.htaccess规则重定向到HTTPS。我会将你的.htaccess重写为以下内容(硬编码你的域名):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://example.com/$1 [R,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
</IfModule>