我设法使用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等。