Я хотел бы получить рабочую конфигурацию apache2 с помощью http://openproject.example.com и httpс://example.com (блог WordPress).
Моя конфигурация:
/etc/apache2/sites-enabled/wordpress.conf
<VirtualHost *:80>
ServerAdmin admin@HOSTNAME_HERE.com
DocumentRoot /var/www/HOSTNAME_HERE/wordpress/
Redirect / https://HOSTNAME_HERE.com/
<Directory /var/www/HOSTNAME_HERE/wordpress/>
Options +FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
/etc/apache2/conf-enabled/wordpress.conf
Псевдоним /wordpress /var/www/HOSTNAME_HERE/wordpress
<Каталог /var/www/HOSTNAME_HERE/wordpress>
Параметры
DirectoryIndex index.php
<IfModule mod_php.c>
<IfModule mod_mime.c>
Приложение AddType/x-httpd-php .php
</ЕслиМодуль>
<FilesMatch ".+\.php$">
Приложение SetHandler/x-httpd-php
</FilesMatch>
</ЕслиМодуль>
</Каталог>
<Каталог /usr/share/phpmyadmin/setup>
<IfModule mod_authz_core.c>
<IfModule mod_authn_file.c>
Основной тип авторизации
</ЕслиМодуль>
Требовать действительного пользователя
</ЕслиМодуль>
</Каталог>
<Каталог /usr/share/phpmyadmin/libraries>
Требовать все отказано
</Каталог>
<Каталог /usr/share/phpmyadmin/setup/lib>
Требовать все отказано
</Каталог>
доступен с SSL через
/etc/apache2/sites-enabled/default-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin admin@HOSTNAME_HERE.com
ServerName ip.address.of.hostname
DocumentRoot /var/www/HOSTNAME_HERE/wordpress/
<Directory /var/www/HOSTNAME_HERE/wordpress/>
Options +FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384...
SSLHonorCipherOrder on
SSLCompression off
SSLSessionTickets off
SSLCertificateFile /etc/apache2/ssl/certificate.crt
SSLCertificateKeyFile /etc/apache2/ssl/pkey.key
SSLCertificateChainFile /etc/apache2/ssl/chain-ca.crt
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
/etc/apache2/sites-enabled/openproject.conf
<VirtualHost *:80>
ServerName openproject.example.com
DocumentRoot /opt/openproject/public
ProxyRequests off
Include /etc/openproject/addons/apache2/includes/vhost/*.conf
# Can't use Location block since it would overshadow all the other proxypass directives on CentOS
ProxyPass / http://127.0.0.1:6000/ retry=0
ProxyPassReverse / http://127.0.0.1:6000/
</VirtualHost>
/etc/openproject/addons/apache2/includes/vhost/openproject.conf
имя_сервера openproject.example.com
перенаправление постоянное / http://example.com/
имя_сервера openproject.example.com
Администратор сервера [email protected]
DocumentRoot /opt/openproject/public
ProxyRequests отключены
ProxyPass / http://127.0.0.1:6000/ повтор = 0
ПроксиПассРеверс / http://127.0.0.1:6000/
<LocationMatch "^/sys">
<IfModule mod_authz_core.c>
Требовать местные
</ЕслиМодуль>
<IfModule !mod_authz_core.c>
Порядок Запретить, Разрешить
Запретить от всех
Разрешить с 127.0.0.1
</ЕслиМодуль>
</LocationMatch>
Псевдоним /assets/opt/openproject/public/assets
Псевдоним /uploads /opt/openproject/public/uploads
<Каталог "/opt/openproject/public">
Параметры - Индексы
<IfModule mod_authz_core.c>
Требовать все предоставленные
</ЕслиМодуль>
<IfModule !mod_authz_core.c>
Отклонить заказ, разрешить
Разрешить от всех
</ЕслиМодуль>
</Каталог>
ПроксиПасс /активы/ !
<Местоположение /активы/>
Размер FileETag
ExpiresActive On ExpiresDefault «доступ плюс 1 год»
</местоположение>
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
ExpiresActive On
ExpiresDefault "доступ плюс 1 год"
</FilesMatch>
AddOutputFilterByType DEFLATE text/html text/css application/x-javascript application/javascript
Журнал ошибок /var/log/apache2/openproject.example.com-error.log
Когда я иду в https://example.com все работает как положено.
Когда я иду в http://openproject.example.com все работает как положено.
К сожалению http://example.com показывает приложение openproject и все другие поддомены, такие как http://notexisting.example.com
Правило для http://example.com должен быть перенаправлен на https://example.com
Как настроить его как положено?