在 htaccess 中强制使用 HTTPS,同时仅使公用文件夹可访问



这个.htaccess文件在我的/public_html/文件夹中:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>

这个.htaccess在我的/public_html/public/文件夹中

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

我需要添加如下所示的规则:

RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

我遇到重定向太多次的问题。

我仍然需要使用公用文件夹作为我的根目录和/public/内部的前端控制器,但我想将所有流量定向到 https。

有人可以帮助我了解如何做到这一点吗?

我是否需要更改与/public/文件夹相关的重写规则?

http->https文件夹.htaccess添加/public_html/public/规则如下:

<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{HTTP_HOST}/$0 [R=301,NE,L]
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

确保在新浏览器中进行测试或完全清除浏览器缓存。

最新更新