Как настроить автоматическое перенаправление с помощью apache2. У меня работает SSL и я хочу перенаправить все на сторону SSL. Я добавил Redirect / https://fraffel.tech/ , но перенес меня в неправильный каталог сайта, тогда как https доставил меня в нужное место. Это то, что нужно добавить для перенаправления? (его в VirtualHost *: 80)
Текущий файл VirtualHost:
ServerName fraffel.tech
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/fraffeltech
Redirect / https://fraffel.tech/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/fraffeltech
SSLEngine on
SSLCertificateFile /etc/ssl/fraffel_tech.crt
SSLCertificateKeyFile /etc/ssl/private/fraffel.tech.key
SSLCertificateChainFile /etc/ssl/fraffel_tech.ca-bundle
</VirtualHost>
Проблема здесь то, что директива ServerName
отсутствует в <VirtualHost>
теги. Это необходимо для идентификации виртуального хоста.
Кроме того, для этого случая это - хорошая идея использовать директиву Redirect
с опцией permanent
- считайте раздел "Redirect Methods" в этой статье.
ServerName example.com # This directive provides a global server name.
# But you should set ServerName also for each virtual host
# to identify it!!!
<VirtualHost *:80>
ServerName example.com
# Redirect Requests to HTTPS with HTTP 301 status
Redirect permanent "/" "https://example.com/"
# Other configuration directives...
</VirtualHost>
<VirtualHost _default_:443>
ServerName example.com
# Other configuration directives...
</VirtualHost>
Примените изменение конфигурации и перезапуск (или перезагрузка) Apache. Затем сбросьте кэш своего браузера или используйте инкогнито окно (или другой браузер) для наблюдения изменения.
Для этой задачи можно использовать, также переписывают правила, поскольку она проиллюстрирована в этом вопросе, но в рамках апачской документации Вам будут рекомендовать не сделать использования переписать механизм, когда можно будет использовать более простые директивы.