gpt4 book ai didi

apache - .htaccess 添加 HTTPS 强制到子目录的现有重写规则

转载 作者:行者123 更新时间:2023-12-01 15:24:15 30 4
gpt4 key购买 nike

可能我正在监督一些非常基础的东西,htaccess 不是我的专业领域。

我的站点仅支持 https,为此,根文件夹/包含以下行:

RewriteEngine On
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [R=301,L]

这很好用。现在我们有一个名为/projects 的新文件夹,其中包含自己的 htaccess 规则,用于通过名为/projects/project.html 的文件转换数据库查询中的 url

文件夹/projects 中的工作 htaccess 是:

RewriteEngine On 
RewriteBase /projects/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ project.html?project=$1 [QSA,L]

现在我想在这一个上强制使用 https 连接,因为如果您通过 http://URL 访问,主目录中的 https 规则不会应用于/projects直接地。因此我将文件修改为:

RewriteEngine On 

RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://example.com%{REQUEST_URI} [R=301,L,NE]

RewriteBase /projects/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ project.html?project=$1 [QSA,L]

有了这个,它切换到 https,但我不断收到“ERR_TOO_MANY_REDIRECTS”。

当我按照@thickguru 的建议更改行时,如下所示:

RewriteRule ^(.*)$ https://example.com/$1 [R,L]

它会立即将我重定向到 https://example.com/index.html

我摆弄了设置,还有 this post 的信息,但是我仍然无法让它工作。

最佳答案

我刚刚注意到您要匹配的变量是 %{ENV:HTTPS} ,因此,您可以在/projects/.htaccess 中使用以下规则:

RewriteEngine on

RewriteCond %{ENV:HTTPS} !on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R]

清除浏览器缓存或尝试使用不同的浏览器进行测试。

关于apache - .htaccess 添加 HTTPS 强制到子目录的现有重写规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41820950/

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