在所有流量和所有页面上强制使用 HTTPS
Forcing HTTPS on All Traffic and All Pages
我有一个在普通 http 上开发和测试的 Codeigniter 应用程序。我们最近转移到 SSL 证书,并且网站的所有页面都没有正确重定向。htaccess.it 仅对首页完成 http://grdagrd.com/. but it does not work for other pages: Sonbol Roud dam
如何在基础 url https://grdagrd.com/ 的所有流量和所有页面上强制使用 HTTPS?
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^([\s\S]*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
您解决问题的思路是正确的,但正则表达式不正确。我们不需要匹配这里的所有内容,因为整个 URL 本身我们需要更改为 https
因此 .*
将在重写规则时起作用。您能否尝试遵循以下规则,如果您还有任何其他规则,请将这些规则保留在 .htaccess 文件的 first/starting 处。如果 RewriteCond %{HTTPS} !on
不起作用,则将其更改为 RewriteCond %{HTTPS} off
。请确保在测试 URLs.
之前清除浏览器的缓存
RewriteEngine ON
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L]
随着 OP 显示的 .htaccess 它可能如下所示,它是来自 OP 的问题 + 我的规则组合的简单 copy/paste,因为我不确定 OP 到底是在处理其他规则(而且那是在外面也是问题的焦点)。
<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>
安装 SSL 证书后,您的网站可通过 HTTP 和 HTTPS 访问。但是,最好只使用后者,因为它会加密和保护您网站的数据。
你可以在这里看到完整的教程
https://tutsfx.com/force-https-traffic-using-htaccess/
对所有流量强制使用 HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
重要提示:确保 RewriteEngine On 行没有重复两次。如果该行已经存在,只需复制其余代码即可。
我有一个在普通 http 上开发和测试的 Codeigniter 应用程序。我们最近转移到 SSL 证书,并且网站的所有页面都没有正确重定向。htaccess.it 仅对首页完成 http://grdagrd.com/. but it does not work for other pages: Sonbol Roud dam
如何在基础 url https://grdagrd.com/ 的所有流量和所有页面上强制使用 HTTPS?
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^([\s\S]*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
您解决问题的思路是正确的,但正则表达式不正确。我们不需要匹配这里的所有内容,因为整个 URL 本身我们需要更改为 https
因此 .*
将在重写规则时起作用。您能否尝试遵循以下规则,如果您还有任何其他规则,请将这些规则保留在 .htaccess 文件的 first/starting 处。如果 RewriteCond %{HTTPS} !on
不起作用,则将其更改为 RewriteCond %{HTTPS} off
。请确保在测试 URLs.
RewriteEngine ON
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L]
随着 OP 显示的 .htaccess 它可能如下所示,它是来自 OP 的问题 + 我的规则组合的简单 copy/paste,因为我不确定 OP 到底是在处理其他规则(而且那是在外面也是问题的焦点)。
<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>
安装 SSL 证书后,您的网站可通过 HTTP 和 HTTPS 访问。但是,最好只使用后者,因为它会加密和保护您网站的数据。
你可以在这里看到完整的教程 https://tutsfx.com/force-https-traffic-using-htaccess/
对所有流量强制使用 HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
重要提示:确保 RewriteEngine On 行没有重复两次。如果该行已经存在,只需复制其余代码即可。