Apache 将 https://host:port/folder 重定向到 http://host:port/folder/

Apache 将 https://host:port/folder 重定向到 http://host:port/folder/

我有一个 apache 服务器,它在不同的端口使用两个 SSL 域(不支持 SNI),有点像这样:

我有重写规则要重定向http://host2.tld:80到 :444 (对 host1 也一样)。然后出现问题:

我在 host2 根目录下有一个文件夹“folder”。如果我尝试访问http://host2.tld/文件夹/,一切都很好,我最终https://host2.tld:444/文件夹/正如预期的那样。现在,如果我输入http://host2.tld/文件夹,apache 将我重定向到http://host2.tld:444/文件夹/,但它并不存在。

由于从“文件夹”到“文件夹/”的重定向是自动完成的,我该怎么做才能解决我的问题?

Mod-rewrite 配置:

<VirtualHost *:80>
    ServerName host2.tld
    RewriteEngine On
    RewriteRule (.*) https://%{HTTP_HOST}:444%{REQUEST_URI} [R=301,L]
</VirtualHost>

答案1

从重写规则中删除 L。该选项表示该规则是“最后”一条规则,不会再进行重写。

当您转到http://host2.tld/folder它时,它会重写 uri 以添加斜线,但不会进行任何进一步处理。

您可能还想/需要在重写中添加一个条件,以防止每次请求时出现循环。

相关内容