Score:0

บังคับให้เปลี่ยนเส้นทาง HTTP/HTTPS บน AWS LightSail Wordpress Multisite - ไม่ได้ใช้งาน

ธง mp

ฉันได้ค้นหาหลายไซต์และรวมถึงหน้าสนับสนุน 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 ทำงาน และหลังจากพยายามแก้ไขปัญหานี้ด้วยตัวเอง ฉันต้องการความช่วยเหลือเนื่องจากฉันอาจพลาดบางอย่างที่นี่

ขอบคุณล่วงหน้าสำหรับความช่วยเหลือของ.

Score:0
ธง cn

คุณต้อง

sudo /opt/bitnami/ctlscript.sh รีสตาร์ท apache

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา