我设法使用永久重定向将我的请求从端口 80 重定向到 443。
但是,有一个问题。我的页面上有一个指向 的链接/forum/
。当用户点击该链接时,它会尝试转到https://futureretrogaming.comforum
不带斜线的 。
关于这个还能做什么?
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/frg"
ServerName www.futureretrogaming.com
ServerAlias futureretrogaming.com
ServerAlias futureretrogaming.net
ServerAlias www.futureretrogaming.net
ErrorLog "/var/www/frg/log/error.log"
CustomLog "/var/www/frg/log/access.log" common
<Directory /var/www/frg>
DirectoryIndex index.html index.php
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Redirect permanent / https://futureretrogaming.com/
</VirtualHost>
答案1
尝试使用mod_rewrite
而不是简单的Redirect
。首先,通过运行此命令确保您的 Apache 设置已mod_write
启用;这适用于 Ubuntu/Debian:
sudo a2enmod rewrite
然后重新启动 Apache;这对 Ubuntu/Debian 也有效:
sudo service apache2 restart
现在您的服务器应该能够处理mod_write
指令了。因此,请像这样调整您的虚拟主机配置:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/frg"
ServerName www.futureretrogaming.com
ServerAlias futureretrogaming.com
ServerAlias futureretrogaming.net
ServerAlias www.futureretrogaming.net
ErrorLog "/var/www/frg/log/error.log"
CustomLog "/var/www/frg/log/access.log" common
<Directory /var/www/frg>
DirectoryIndex index.html index.php
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
// Redirect permanent / https://futureretrogaming.com/
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>
如果您注意到,我注释掉了您已放置的内容并添加了一些空格以提高可读性。您可以从命令行使用以下Redirect
命令进行检查:curl -I
curl -I http://futureretrogaming.com/forum
我现在看到的结果表明这是有效的:
HTTP/1.1 302 Found
Date: Fri, 30 May 2014 02:03:46 GMT
Server: Apache/2.2.22 (Ubuntu)
Location: https://futureretrogaming.com/forum
Vary: Accept-Encoding
Content-Type: text/html; charset=iso-8859-1
有点不相关,但既然我注意到了,你也可以通过合并和简化一些ServerAlias
东西让你的生活变得更轻松一些:
ServerAlias futureretrogaming.com
ServerAlias futureretrogaming.net
ServerAlias www.futureretrogaming.net
而不是将 3 行合并为一行:
ServerAlias futureretrogaming.* www.futureretrogaming.*
通配符涵盖所有顶级域名,例如.com
、.net
甚至.org
以及其他域名。