ฉันได้ค้นหาหลายไซต์และรวมถึงหน้าสนับสนุน Bitnami และไม่พบคำตอบสำหรับปัญหานี้ที่ฉันเห็น ฉันไม่สามารถโพสต์บน Bitnami สนับสนุน cummunity เป็นหัวข้อใหม่ได้เนื่องจากฉันเพิ่งเข้าร่วม :/
ฉันได้สรุปอย่างดีที่สุดเท่าที่จะทำได้ แต่มีรายละเอียดมากมายเนื่องจากฉันได้เพิ่มไฟล์การกำหนดค่าที่เกี่ยวข้องทั้งหมดแล้ว
ฉันใช้งานแอปพลิเคชัน Wordpress MultiSite ที่ทำงานบนอินสแตนซ์ AWS Lightsail Linux ที่เปิดใช้งานโดยใช้ Bitnami Installation System Package เว็บไซต์ของฉันทำงานได้ดี และฉันยังได้เพิ่มและกำหนดค่าใบรับรอง Lets Encrypt SSL เรียบร้อยแล้ว ฉันสามารถส่งทั้งคำขอ HTTP และ HTTPS สำหรับรูทและโดเมนย่อยของฉัน และเห็น 200 OK ใน curl ทั้งสองประเภท ดังนั้นใบรับรอง SSL ที่กำหนดค่าบนพอร์ต 443 จึงทำงานตามที่คาดไว้
ขด -L -svo /dev/null https://trevorwalsh.art
การเปลี่ยนเส้นทางเดียวที่กำหนดค่าบน Apache ในปัจจุบันคือการเปลี่ยนเส้นทางคำขอโดเมนย่อย 'www.trevorwalsh.art' ----> 'trevorwalsh.art' สิ่งนี้จะถูกเพิ่มเมื่อตั้งค่าหลายไซต์ WordPress นี้
ขด -L -svo /dev/null www.trevorwalsh.art
ฉันตรวจสอบแล้วว่าสำหรับ Wordpress MultiSite กระบวนการเพิ่มใบรับรอง Lets Encrypt SSL ในปัจจุบันอนุญาตให้มีการกำหนดค่าการเปลี่ยนเส้นทาง HTTP เป็น HTTPS ใน Apache ซึ่งไม่เหมือนในกรณีที่ใช้ Wordpress และ Apache มาตรฐาน ดังนั้นฉันจึงค้นคว้าและปฏิบัติตามคำแนะนำที่เห็นในเอกสาร Bitnami ต่อไปนี้ สแต็กของฉันคือ 'แนวทาง A: การติดตั้ง Bitnami โดยใช้แพ็คเกจระบบ'
[1] บังคับให้เปลี่ยนเส้นทาง HTTPS ด้วย Apache:-
ฉันได้เพิ่มเนื้อหาของแต่ละไฟล์ที่เกี่ยวข้องซึ่งจำเป็นต้องแก้ไขด้านล่าง:-
ไฟล์ -> /opt/bitnami/apache2/conf/bitnami/bitnami.conf
# ให้ Apache รู้ว่าเราอยู่เบื้องหลัง SSL reverse proxy
SetEnvIf X-Forwarded-Proto https HTTPS=on
<โฮสต์เสมือน _default_:80>
DocumentRoot "/opt/bitnami/apache/htdocs"
# BEGIN: การกำหนดค่าสำหรับ letsencrypt
รวม "/opt/bitnami/apps/letsencrypt/conf/httpd-prefix.conf"
RewriteEngine เปิดอยู่
RewriteCond %{HTTPS} !=เปิด
RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
# END: การกำหนดค่าสำหรับ letsencrypt
<ไดเรกทอรี "/opt/bitnami/apache/htdocs">
ดัชนีตัวเลือก FollowSymLinks
AllowOverride ทั้งหมด
ต้องได้รับอนุญาตทั้งหมด
</ไดเร็กทอรี>
#เอกสารผิดพลาด
เอกสารข้อผิดพลาด 503 /503.html
</เวอร์ชวลโฮสต์>
รวม "/opt/bitnami/apache/conf/bitnami/bitnami-ssl.conf"
ไฟล์ -> /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>
ไฟล์ -> /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>
ฉันได้เพิ่มค่าโดเมนรูทและโดเมนย่อย 'ชื่อเซิร์ฟเวอร์' และ 'ชื่อเซิร์ฟเวอร์นามแฝง' ที่ถูกต้องตามคำแนะนำที่เห็นในเอกสารนี้:-
[2] กำหนดค่าบล็อกสำหรับโดเมนต่างๆ ด้วยใบรับรอง SSL ที่แตกต่างกัน:-
ไฟล์ -> /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>
ไฟล์ -> /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>
สุดท้ายนี้ ฉันยืนยันว่าฉันมีพารามิเตอร์ที่ถูกต้องในไฟล์ 'wordpress-htaccess.conf' ที่แสดงด้านล่างหลังจากตรวจสอบข้อมูลที่เห็นในเอกสารต่อไปนี้:-
[3] ทำความเข้าใจการกำหนดค่าไฟล์ .Htaccess เริ่มต้น - เพิ่มส่วนใหม่ในไฟล์ .Htaccess
ไฟล์ -> /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>
อย่างไรก็ตาม ฉันไม่สามารถบังคับให้ HTTP/HTTPS Redirect ทำงาน และหลังจากพยายามแก้ไขปัญหานี้ด้วยตัวเอง ฉันต้องการความช่วยเหลือเนื่องจากฉันอาจพลาดบางอย่างที่นี่
ขอบคุณล่วงหน้าสำหรับความช่วยเหลือของ.