首页 > 解决方案 > HTaccess 不转发到 https

问题描述

在我的 htaccess 文件中,我有一个 rewritecond 应该将所有 http 请求转发到 https,但由于某种原因我不起作用,这不是我的专业领域,你能帮帮我吗?

我目前正在使用这个

RewriteEngine on

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s on(s)|offs()
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R]

RewriteRule \.(gif|jpg|png|css|flv|js|swf|php|ico|webm|mp4)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+\.php)$ index.php?url=$1 [QSA,L]
RewriteCond %{REQUEST_URI} !(\.)
RewriteCond %{REQUEST_URI} !(\.)
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} .*
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

标签: .htaccesshttps

解决方案


AND默认情况下,这两个重写条件通过逻辑运算符连接。这意味着如果一个条件是,则不false应用重定向规则,例如,如果主机名确实以“www.”开头......

请改用逻辑OR运算符:

重写引擎开启

RewriteCond %{HTTP_HOST} !^www\. [OR]
RewriteCond %{HTTPS}s on(s)|offs()
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [NE,R]

推荐阅读