Люди мудрые,
Я пытаюсь выполнить следующее:
Перенаправьте их:
http://www.veluwsvuurbarneveld.nl
http://veluwsvuurbarneveld.nl
https://www.veluwsvuurbarneveld.nl
Чтобы
https://veluwsvuurbarneveld.nl
Цель состоит в том, чтобы отправить все связанные URL-адреса на SSL-адрес без www.
Это код в конфигурации mij apache2 (строки, указывающие на ключи SSL, удалены):
<VirtualHost *:443>
ServerName veluwsvuurbarneveld.nl
DocumentRoot /var/www/
SSLEngine on
SSLCertificateFile /etc/ssl/certs/...
SSLCertificateKeyFile /etc/ssl/private/...
SSLCACertificateFile /etc/ssl/certs/...
</VirtualHost>
<VirtualHost *:80>
ServerName www.veluwsvuurbarneveld.nl
Redirect permanent / https://veluwsvuurbarneveld.nl/
</VirtualHost>
<VirtualHost *:80>
ServerName veluwsvuurbarneveld.nl
Redirect permanent / https://veluwsvuurbarneveld.nl/
</VirtualHost>
<VirtualHost *:443>
ServerName www.veluwsvuurbarneveld.nl
Redirect permanent / https://veluwsvuurbarneveld.nl/
</VirtualHost>
<Directory /var/www/>
Options +ExecCGI
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
В результате http://veluwsvuurbarneveld.nl перенаправляется правильно, но два www. URL-адреса - нет. Моей первой мыслью было то, что https: // www. тоже нужен сертификат. Однако это не объясняет другой www. не работает.
Мой .htaccess выглядит так (сгенерирован wordpress):
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Вывод apache2ctl -S:
VirtualHost configuration:
*:80 is a NameVirtualHost
default server localhost (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost www.veluwsvuurbarneveld.nl (/etc/apache2/sites-enabled/veluwsvuurbarneveld.nl.conf:10)
port 80 namevhost veluwsvuurbarneveld.nl (/etc/apache2/sites-enabled/veluwsvuurbarneveld.nl.conf:14)
*:443 is a NameVirtualHost
default server veluwsvuurbarneveld.nl (/etc/apache2/sites-enabled/veluwsvuurbarneveld.nl.conf:1)
port 443 namevhost veluwsvuurbarneveld.nl (/etc/apache2/sites-enabled/veluwsvuurbarneveld.nl.conf:1)
port 443 namevhost www.veluwsvuurbarneveld.nl (/etc/apache2/sites-enabled/veluwsvuurbarneveld.nl.conf:18)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
Mutex ssl-stapling: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
Обратите внимание, что я хочу решить эту проблему с помощью файла конфигурации apache2, не через mod_rewrite (httpd.apache.org/docs/trunk/rewrite/avoid.html)
Любые идеи?
Это должно работать:
<VirtualHost *:80>
ServerName veluwsvuurbarneveld.nl
ServerAlias www.veluwsvuurbarneveld.nl
Redirect permanent / https://veluwsvuurbarneveld.nl/
</VirtualHost>
<VirtualHost *:443>
ServerName www.veluwsvuurbarneveld.nl
SSLEngine on
SSLCertificateFile /etc/ssl/certs/...
SSLCertificateKeyFile /etc/ssl/private/...
SSLCACertificateFile /etc/ssl/certs/...
Redirect permanent / https://veluwsvuurbarneveld.nl/
</VirtualHost>
<VirtualHost *:443>
ServerName veluwsvuurbarneveld.nl
DocumentRoot /var/www/
SSLEngine on
SSLCertificateFile /etc/ssl/certs/...
SSLCertificateKeyFile /etc/ssl/private/...
SSLCACertificateFile /etc/ssl/certs/...
</VirtualHost>
<Directory /var/www/>
Options +ExecCGI
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Спасибо, что ответили на мой вопрос. После использования вашего (RDA) кода для файла конфигурации apache2 проблема не исчезла. Оказывается, ваш код полностью правильный, но проблема была в моих записях DNS.
Я забыл добавить DNS-записи в www. домены у моего провайдера (Digital Ocean). Чтобы приведенный выше код работал, сначала на мой сервер должны быть направлены запросы как с www, так и без www. После добавления DNS-записей для www.veluwsvuurbarneveld.nl проблема была решена.
Моя ошибка!