Apache将https://主机:端口/文件夹redirect到http://主机:端口/文件夹/

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

  • https://host1.tld:443 (默认)
  • https://host2.tld:444 (非标准)

我有一个重写规则redirecthttp://host2.tld:80到:444(和主机1相同)。 然后是这个问题:

我有一个文件夹“文件夹”host2根。 如果我尝试访问http://host2.tld/folder/ ,一切正常,我最终在https://host2.tld:444 /文件夹/按预期。 现在,如果我inputhttp://host2.tld/folder,apache会将我redirect到http://host2.tld:444 / folder / ,这不存在。

由于从“文件夹”redirect到“文件夹/”是自动完成,我能做些什么来解决我的问题?

Mod-rewriteconfiguration:

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

从您的重写规则中删除L. 该选项表示该规则是“最后”规则,不会再发生重写。

当你到http://host2.tld/folder它会重写uri来添加斜杠,但不会进一步处理。

您可能还需要/重新添加一个条件来防止每个请求的循环。