Tôi muốn cấu hình apache2 hoạt động với http://openproject.example.com và httpS://example.com (blog wordpress).
Cấu hình của tôi:
/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
Bí danh /wordpress /var/www/HOSTNAME_HERE/wordpress
<Thư mục /var/www/HOSTNAME_HERE/wordpress>
Tùy chọn FollowSymLinks
Directory Index index.php
<IfModule mod_php.c>
<IfModule mod_mime.c>
Ứng dụng AddType/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
Ứng dụng SetHandler/x-httpd-php
</FilesMatch>
</IfModule>
</Thư mục>
<Thư mục /usr/share/phpmyadmin/setup>
<IfModule mod_authz_core.c>
<IfModule mod_authn_file.c>
AuthType cơ bản
</IfModule>
Yêu cầu người dùng hợp lệ
</IfModule>
</Thư mục>
<Thư mục /usr/share/phpmyadmin/libraries>
Yêu cầu tất cả bị từ chối
</Thư mục>
<Thư mục /usr/share/phpmyadmin/setup/lib>
Yêu cầu tất cả bị từ chối
</Thư mục>
có sẵn với SSL thông qua
/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
Tên máy chủ openproject.example.com
chuyển hướng vĩnh viễn / http://example.com/
Tên máy chủ openproject.example.com
ServerAdmin [email protected]
DocumentRoot /opt/openproject/public
Yêu cầu proxy tắt
ProxyPass / http://127.0.0.1:6000/ thử lại=0
ProxyPassReverse / http://127.0.0.1:6000/
<LocationMatch "^/sys">
<IfModule mod_authz_core.c>
Yêu cầu địa phương
</IfModule>
<IfModule !mod_authz_core.c>
Lệnh từ chối, cho phép
Tư chôi tât cả
Cho phép từ 127.0.0.1
</IfModule>
</LocationMatch>
Bí danh/nội dung/opt/openproject/công khai/nội dung
Bí danh /uploads /opt/openproject/public/uploads
<Thư mục "/opt/openproject/public">
Tùy chọn -Chỉ mục
<IfModule mod_authz_core.c>
Yêu cầu tất cả cấp
</IfModule>
<IfModule !mod_authz_core.c>
Lệnh từ chối, cho phép
cho phép từ tất cả
</IfModule>
</Thư mục>
ProxyPass /tài sản/!
<Vị trí /tài sản/>
Kích thước tệpETTag
ExpiresActive On ExpiresDefault "truy cập cộng thêm 1 năm"
</Vị trí>
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
ExpiresActive On
ExpiresDefault "truy cập thêm 1 năm"
</FilesMatch>
AddOutputFilterByType XÁC ĐỊNH văn bản/văn bản html/ứng dụng css/ứng dụng x-javascript/javascript
ErrorLog /var/log/Apache2/openproject.example.com-error.log
Khi tôi tới https://example.com mọi thứ hoạt động như mong đợi.
Khi tôi tới http://openproject.example.com mọi thứ hoạt động như mong đợi.
Không may http://example.com hiển thị ứng dụng openproject và tất cả các tên miền phụ khác, chẳng hạn như http://không tồn tại.example.com
quy tắc cho http://example.com sẽ được chuyển hướng đến https://example.com
Làm thế nào để cấu hình nó như mong đợi?