将站点的 80 端口请求重定向至 443 端口

将站点的 80 端口请求重定向至 443 端口

我设法使用永久重定向将我的请求从端口 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以及其他域名。

相关内容