Tôi đã tìm kiếm nhiều trang web và cả các trang hỗ trợ Bitnami và tôi không thể tìm thấy câu trả lời cho vấn đề này. Tôi không thể đăng trên cộng đồng hỗ trợ Bitnami như một chủ đề mới vì tôi mới tham gia :/
Tôi đã tóm tắt tốt nhất có thể nhưng có rất nhiều chi tiết vì tôi đã thêm tất cả các tệp cấu hình có liên quan.
Tôi đang chạy ứng dụng Wordpress MultiSite chạy trên phiên bản AWS Lightsail Linux được khởi chạy bằng Gói hệ thống cài đặt Bitnami. Trang web của tôi đang chạy tốt và tôi cũng đã thêm và định cấu hình thành công chứng chỉ SSL Lets Encrypt. Tôi có thể gửi cả yêu cầu HTTP và HTTPS cho tên miền gốc và tên miền phụ của mình và thấy 200 OK ở cả hai loại cuộn tròn. Do đó, chứng chỉ SSL được định cấu hình trên cổng 443 đang hoạt động như mong đợi.
cuộn tròn -L -svo /dev/null https://trevorwalsh.art
Chuyển hướng duy nhất hiện được định cấu hình trên Apache là chuyển hướng yêu cầu tên miền phụ 'www.trevorwalsh.art' ----> 'trevorwalsh.art'. Điều này được thêm vào khi thiết lập nhiều trang WordPress này.
cuộn tròn -L -svo /dev/null www.trevorwalsh.art
Tôi đã xác minh rằng đối với Wordpress MultiSite, quy trình thêm chứng chỉ Lets Encrypt SSL hiện cho phép cấu hình chuyển hướng HTTP sang HTTPS trong Apache không giống như khi sử dụng Wordpress và Apache tiêu chuẩn. Vì vậy, tôi đã nghiên cứu và làm theo hướng dẫn trong tài liệu Bitnami sau đây. Ngăn xếp của tôi là 'Cách tiếp cận A: Cài đặt Bitnami bằng gói hệ thống'
[1] Buộc chuyển hướng HTTPS với Apache: -
Tôi đã thêm nội dung của từng tệp có liên quan được yêu cầu chỉnh sửa bên dưới: -
Tệp -> /opt/bitnami/Apache2/conf/bitnami/bitnami.conf
# Cho Apache biết chúng tôi đứng sau một proxy ngược SSL
SetEnvIf X-Forwarded-Proto https HTTPS=on
<VirtualHost _default_:80>
DocumentRoot "/opt/bitnami/Apache/htdocs"
# BEGIN: Cấu hình letsencrypt
Bao gồm "/opt/bitnami/apps/letsencrypt/conf/httpd-prefix.conf"
Viết LạiEngine Trên
RewriteCond %{HTTPS} !=bật
RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
# KẾT THÚC: Cấu hình cho letencrypt
<Thư mục "/opt/bitnami/apache/htdocs">
Tùy chọn Chỉ mục FollowSymLinks
AllowOverride All
Yêu cầu tất cả cấp
</Thư mục>
# Tài liệu Lỗi
ErrorDocument 503 /503.html
</Máy chủ ảo>
Bao gồm "/opt/bitnami/Apache/conf/bitnami/bitnami-ssl.conf"
Tệp -> /opt/bitnami/Apache2/conf/bitnami/bitnami-ssl.conf
<IfModule !ssl_module>
LoadModule ssl_module modules/mod_ssl.so
</IfModule>
Listen 443
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH !aNULL !eNULL !LOW !3DES !MD5 !EX$
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:/opt/bitnami/apache/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
<VirtualHost _default_:443>
DocumentRoot "/opt/bitnami/apache/htdocs"
SSLEngine on
SSLCertificateFile "/opt/bitnami/apache/conf/trevorwalsh.art.crt"
SSLCertificateKeyFile "/opt/bitnami/apache/conf/trevorwalsh.art.key"
# BEGIN: Configuration for letsencrypt
Include "/opt/bitnami/apps/letsencrypt/conf/httpd-prefix.conf"
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
# END: Configuration for letsencrypt
<Directory "/opt/bitnami/apache/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# Error Documents
ErrorDocument 503 /503.html
</VirtualHost>
Tệp -> /opt/bitnami/Apache2/conf/vhosts/00_status-vhost.conf
<VirtualHost 127.0.0.1:80>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
ServerName status.localhost
<Location /server-status>
Require local
SetHandler server-status
</Location>
</VirtualHost>
Tôi đã thêm đúng các giá trị tên miền gốc và tên miền phụ 'ServerName' và 'ServerAlias' dựa trên hướng dẫn được thấy trong tài liệu này: -
[2] Định cấu hình blog cho các miền khác nhau với các chứng chỉ SSL khác nhau:-
Tệp -> /opt/bitnami/Apache2/conf/vhosts/wordpress-https-vhost.conf
<VirtualHost 127.0.0.1:443 _default_:443>
ServerName trevorwalsh.art
ServerAlias *.trevorwalsh.art
SSLEngine on
SSLCertificateFile "/opt/bitnami/apache/conf/trevorwalsh.art.crt"
SSLCertificateKeyFile "/opt/bitnami/apache/conf/trevorwalsh.art.key"
DocumentRoot /opt/bitnami/wordpress
# BEGIN: Configuration for letsencrypt
Include "/opt/bitnami/apps/letsencrypt/conf/httpd-prefix.conf"
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
# END: Configuration for letsencrypt
<Directory "/opt/bitnami/wordpress">
Options -Indexes +FollowSymLinks -MultiViews
AllowOverride None
Require all granted
# BEGIN WordPress fix for plugins and themes
# Certain WordPress plugins and themes do not properly link to PHP files because of symbolic links
# https://github.com/bitnami/bitnami-docker-wordpress-nginx/issues/43
RewriteEngine On
RewriteRule ^bitnami/wordpress(/.*) $1 [L]
# END WordPress fix for plugins and themes
# BEGIN nip.io redirection
RewriteEngine On
RewriteCond %{HTTP_HOST} ^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})(:[0-9]{1,5})?$
RewriteRule ^/?(.*) %{REQUEST_SCHEME}://%1.nip.io%2/$1 [L,R=302,NE]
# END nip.io redirection
# BEGIN WordPress Multisite
# Using subdomain network type: https://wordpress.org/support/article/htaccess/#multisite
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress Multisite
</Directory>
Include "/opt/bitnami/apache/conf/vhosts/htaccess/wordpress-htaccess.conf"
</VirtualHost>
Tệp -> /opt/bitnami/Apache2/conf/vhosts/wordpress-vhost.conf
<VirtualHost 127.0.0.1:80 _default_:80> ServerAlias * DocumentRoot /opt/bitnami/wordpress
# <VirtualHost _default_:80> # BEGIN: Configuration for letsencrypt
# BEGIN: Configuration for letsencrypt
Include "/opt/bitnami/apps/letsencrypt/conf/httpd-prefix.conf"
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
# END: Configuration for letsencrypt
<Directory "/opt/bitnami/wordpress">
Options -Indexes +FollowSymLinks -MultiViews
AllowOverride None
Require all granted
# BEGIN WordPress fix for plugins and themes
# Certain WordPress plugins and themes do not properly link to PHP files because of symbolic links
# https://github.com/bitnami/bitnami-docker-wordpress-nginx/issues/43
RewriteEngine On
RewriteRule ^bitnami/wordpress(/.*) $1 [L]
# END WordPress fix for plugins and themes
# BEGIN nip.io redirection
RewriteEngine On
RewriteCond %{HTTP_HOST} ^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})(:[0-9]{1,5})?$
RewriteRule ^/?(.*) %{REQUEST_SCHEME}://%1.nip.io%2/$1 [L,R=302,NE]
# END nip.io redirection
# BEGIN WordPress Multisite
# Using subdomain network type: https://wordpress.org/support/article/htaccess/#multisite
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress Multisite
</Directory>
Include "/opt/bitnami/apache/conf/vhosts/htaccess/wordpress-htaccess.conf"
</VirtualHost>
Cuối cùng, tôi đã xác minh rằng tôi có các tham số chính xác trong tệp 'wordpress-htaccess.conf' được thấy bên dưới sau khi xem lại thông tin được thấy trong tài liệu sau: -
[3] Hiểu Cấu hình Tệp .Htaccess Mặc định - Thêm Phần Mới Trong Tệp .Htaccess
Tệp -> /opt/bitnami/Apache2/conf/vhosts/htaccess/wordpress-htaccess.conf
<Directory "/opt/bitnami/wordpress/wp-content/plugins/akismet">
# <Directory "/opt/bitnami/wordpress">
# Only allow direct access to specific Web-available files.
# Apache 2.2
<IfModule !mod_authz_core.c>
Order Deny,Allow
Deny from all
</IfModule>
# Apache 2.4
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
# Akismet CSS and JS
<FilesMatch "^(form\.js|akismet\.js|akismet\.css)$">
<IfModule !mod_authz_core.c>
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</FilesMatch>
# Akismet images
<FilesMatch "^logo-(a|full)-2x\.png$">
<IfModule !mod_authz_core.c>
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</FilesMatch>
</Directory>
Tuy nhiên, tôi không thể làm cho Chuyển hướng bắt buộc HTTP/HTTPS hoạt động và sau khi cố gắng tự giải quyết vấn đề này, tôi cần trợ giúp vì tôi có thể thiếu thứ gì đó ở đây.
Cảm ơn trước sự giúp đỡ của bạn.