Мне удалось перенаправить мои запросы с порта 80 на порт 443, используя постоянное перенаправление.
Однако есть проблема. На моей странице есть ссылка на /forum/
. Когда вы нажимаете ссылку, он пытается перейти на https://futureretrogaming.comforum
без косых черт.
Что с этим делать?
<VirtualHost *:80>
ServerAdmin kevin.miller@futureretrogaming.com
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
инструкции. Поэтому настройте конфигурацию вашего виртуального хоста следующим образом:
<VirtualHost *:80>
ServerAdmin kevin.miller@futureretrogaming.com
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
а также другие.