.htaccess 在所有流量和所有页面上强制使用HTTPS
我有一个Codeigniter应用程序,它是在普通http上开发和测试的。我们最近转到SSL证书,网站的所有页面都没有在.htaccess.it中正确重定向。它只针对首页。但它不适用于其他页面: 如何在所有流量和基本url的所有页面上强制使用HTTPS.htaccess 在所有流量和所有页面上强制使用HTTPS,.htaccess,codeigniter,redirect,mod-rewrite,https,.htaccess,Codeigniter,Redirect,Mod Rewrite,Https,我有一个Codeigniter应用程序,它是在普通http上开发和测试的。我们最近转到SSL证书,网站的所有页面都没有在.htaccess.it中正确重定向。它只针对首页。但它不适用于其他页面: 如何在所有流量和基本url的所有页面上强制使用HTTPS 你解决这个问题的想法是正确的,但是正则表达式是不正确的。我们不需要在这里匹配所有内容,因为整个URL本身需要更改为https,因此*将在重写规则时工作。如果您还有其他规则,请尝试以下操作,然后将这些规则保留在.htaccess文件的第一个/开头。
你解决这个问题的想法是正确的,但是正则表达式是不正确的。我们不需要在这里匹配所有内容,因为整个URL本身需要更改为
https
,因此*
将在重写规则时工作。如果您还有其他规则,请尝试以下操作,然后将这些规则保留在.htaccess文件的第一个/开头。如果RewriteCond%{HTTPS}!on
不起作用,然后将其更改为RewriteCond%{HTTPS}关闭
。请确保在测试URL之前清除浏览器的缓存
RewriteEngine ON
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L]
对于OP的show.htaccess,它可能如下所示,它是OP的问题+我的规则组合的简单复制/粘贴,因为我不确定OP到底在处理什么其他规则(而且这也超出了问题的重点)
重新启动发动机
重写基/
重写cond%{HTTPS}!在…上
重写规则^(.*)$https://%{HTTP_HOST}%{REQUEST_URI}[NE,L]
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^([\s\s]*)$/index.php[L,B,QSA]
安装SSL证书后,您的网站可以通过HTTP和HTTPS访问。但是,最好只使用后者,因为它可以加密和保护您网站的数据
你可以在这里看到完整的教程
在所有流量上强制使用HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
重要事项:确保发动机接通线路不会重复两次。如果行已经存在,只需复制代码的其余部分而不复制它
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\s\S]*)$ /index.php [L,B,QSA]
</IfModule>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]