gpt4 book ai didi

php - 强制 https 协议(protocol)

转载 作者:可可西里 更新时间:2023-11-01 00:22:59 25 4
gpt4 key购买 nike

如何强制我的网站在整个站点中使用 https://?我的网站是在 CentOS 上使用 CodeIgniter、MySQL 和 Apache 构建的,谁能赐教。

编辑:

我正在使用 CodeIgniter,它有这个 .htaccess。正如我在下面的评论中提到的,我想做相反的事情(在网站的某些部分强制使用 https):

我系统上的.htaccess:

Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

#When your application folder isn't in the system folder
#This snippet prevents user access to the application folder
#Submitted by: Fabdrol
#Rename 'application' to your applications folder name.
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin

ErrorDocument 404 /index.php
</IfModule>

如果我添加@Dale 建议的内容:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond ^(login|register|userportal)
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

我收到回复 500。有什么想法吗?

最佳答案

我过去在 .htaccess 文件中使用过它

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

可能有更好的实现,但它对我来说总是有效

如果要去掉www部分我用过这个

RewriteCond %{HTTP_HOST} ^www\.(.+)
RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+)
RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301]

这是组合规则

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

RewriteCond %{HTTP_HOST} ^www\.(.+)
RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+)
RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301]

这首先处理协议(protocol),然后删除 w

更新:

要为特定目录强制执行 https 协议(protocol),您可以使用类似的东西

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond ^(login|register|userportal)
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

如果你使用上面的,你当然会删除这个(下面)

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

关于php - 强制 https 协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13645730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com