将端口80请求redirect到站点443

我设法使用redirect永久将我的请求从端口80redirect到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> 

尝试使用mod_rewrite而不是简单的Redirect 。 首先,通过运行这个命令,确保你的Apache安装程序已经启用了mod_write ; 这适用于Ubuntu / Debian:

 sudo a2enmod rewrite 

然后重启Apache; 这又适用于Ubuntu / Debian:

 sudo service apache2 restart 

而你的服务器现在应该能够处理mod_write指令。 所以调整你的虚拟主机configuration如下:

 <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 

而不是三行可以全部合并成一行:

 ServerAlias futureretrogaming.* www.futureretrogaming.* 

通配符涵盖了所有顶级域名,如.com.net甚至.org等。