我在 Linux Mint 上设置了一个 Apache2 服务器。我将default-ssl
网站配置为使用我购买的 SSL 证书,并且默认网站使用 SSL 运行良好。
但是当我尝试访问类似目录时,example.com/thing
它会将我重定向到https://example.com:433/thing/
并显示一个不可用的网站。如果我访问,example.com/thing/
它会将我重定向到https://example.com/thing/
,一切正常。我该如何解决这个问题?
答案1
您说的是配置试图将您发送到:
https://example.com:433/thing/
这看起来很奇怪,因为标准https
端口是443
而不是433
。也许这就是问题所在?无论如何,我都会尝试帮助解决尾部斜杠问题。
首先,我不太清楚 Linux Mint 是如何工作的,但如果你安装了 Apache2,这个a2enmod
命令应该可以启用阿帕奇mod_rewrite
这是您将要进行的调整所必需的:
sudo a2enmod rewrite
如果mod_rewrite
已启用,则运行该命令不会有任何影响;您只会收到一条mod_rewrite
已启用的消息。无论消息是什么,请转到实际的重写规则。
因此,就尾随斜杠而言,您也可以将其添加到普通http
配置中:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [L,R=301]
这RewriteCond
基本上是说“捕获任何没有尾随斜杠的 URL...”并且RewriteRule
其后的命令实际上会通过将 URL 重写为带有斜杠来修复缺少斜杠的问题。
然后将其添加到您的普通http
配置中(如果您尚未添加),以将非https
流量重定向到您的https
网站。
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
现在,由于您没有提供任何您正在使用的 Apache 配置示例,我不能 100% 确定这些东西会“按原样”工作,但希望它可以帮助您并让您走上解决此问题的正确道路。如果它逐字/“按原样”工作?那就太好了!