Apache2:两次重定向

Apache2:两次重定向

我想将主机上的所有 URL 重定向到 https,并将根文件夹重定向到子文件夹。

我的配置:

Redirect permanent / https://myhost.com/ 
RedirectMatch ^/$ /sub-folder/

第一次重定向工作良好,所有 http 请求都重定向到 https,但第二次重定向没有任何作用。

请问有什么建议吗?

谢谢。

答案1

看起来问题出在你的第一条规则上:

Redirect permanent / https://myhost.com/

可以改为:

Redirect permanent http://myhost.com/ https://myhost.com/

此外,正则表达式似乎不起作用,除非它在引号内,因此^/$应该更改为"^/$"

由于第一次重定向发生了无数次,因此第二次重定向未被观察到。

我可以通过在/etc/hosts文件中添加以下几个条目来调试这个问题:

127.0.0.1 kerneldeimos.local
127.0.0.1 subdomain.kerneldeimos.local

然后我添加了您的重写规则(为了方便起见,使用子域而不是 HTTPS):

Redirect permanent / http://subdomain.kerneldeimos.local
RedirectMatch "^/$" /sub-folder/

在我将配置更改为以下内容后,它就可以正常工作了:

Redirect permanent http://kerneldeimos.local http://subdomain.kerneldeimos.local
RedirectMatch "^/$" /sub-folder/

答案2

经过一番研究,我解决了这个问题。问题是第一次重定向被重定向到端口 443,因此第二次重定向必须在 VirtualHost:443 中进行管理。正如您所说,RedirectMatch 指令中需要使用引号。

非常感谢。

相关内容