我刚刚在我的服务器上设置了 https,但遇到了永久重定向问题。
例如如果我有一个链接http://domain.com/index.html它重定向我
https://www.domain.comindex.html
/ 丢失了,我不知道如何修复它。
这是与http://www.domain.com/index.html
这是我的 httpd.conf
<VirtualHost *:80>
ServerName domain.com
Redirect permanent / https://www.domain.com/
</VirtualHost>
<VirtualHost *:80>
ServerName www.domain.com
Redirect permanent / https://www.domain.com/
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/domain/
ServerName www.domain.com
SSLEngine on
SSLCertificateFile ssl.crt
SSLCertificateKeyFile ssl.key
</VirtualHost>
答案1
<VirtualHost *:80>
ServerName www.domain.com
ServerAlias domain.com
Redirect permanent / https://www.domain.com/
</VirtualHost>
去掉第二个。
你最初的问题是目标中的拼写错误;重定向的源和目标必须有匹配的斜线。
浏览器缓存持久性解释了其余部分。
还要注意,在 Apache 2.2NameVirtualHost *:80
中不是如果您有多个虚拟主机,则可选。
在 apache 2.4 中,它会猜测您的意思并做正确的事情。
答案2
为什么要重复虚拟主机定义?您只需使用如下一行:
ServerAlias www.domain.com domain.com
这里是参考。因此,一个 VH 就足够了,而不需要两个(端口 80)。您可以保留正在运行的那个 :)