Рейтинг:0

Принудительное перенаправление HTTP/HTTPS на AWS LightSail Wordpress Multisite — не реализуется

флаг mp

Я просмотрел многие сайты, а также страницы поддержки Bitnami, и мне не удалось найти ответ на эту проблему, которую я вижу. Я не могу публиковать сообщения в группе поддержки Bitnami в качестве новой темы, так как я только что присоединился к ней :/

Я резюмировал, насколько мог, но было много деталей, потому что я добавил все соответствующие файлы конфигурации.

Я запускаю приложение Wordpress MultiSite, работающее на экземпляре AWS Lightsail Linux, запущенном с использованием системного пакета установки Bitnami. Мой сайт работает нормально, и я также успешно добавил и настроил SSL-сертификат Lets Encrypt. Я могу отправлять как HTTP, так и HTTPS-запросы для своего корня и поддомена и вижу 200 OK в обоих типах завитков. Поэтому 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 процесс добавления SSL-сертификата Lets Encrypt в настоящее время позволяет настроить перенаправление HTTP на HTTPS в Apache, в отличие от использования стандартных Wordpress и Apache. Поэтому я исследовал и следовал указаниям, приведенным в следующем документе Bitnami. Мой стек: «Подход А: установка Bitnami с использованием системных пакетов». [1] Принудительное перенаправление HTTPS с помощью Apache: -

Я добавил содержимое каждого соответствующего файла, который требуется отредактировать ниже: -


Файл --> /opt/bitnami/apache2/conf/bitnami/bitnami.conf

# Сообщаем Apache, что мы находимся за обратным SSL-прокси
SetEnvIf X-Forwarded-Proto https HTTPS=on

<Виртуальный хост _default_:80>
   DocumentRoot "/opt/bitnami/apache/htdocs"
# НАЧАЛО: Конфигурация для letsencrypt 
   Включить "/opt/bitnami/apps/letsencrypt/conf/httpd-prefix.conf"
   RewriteEngine включен
   RewriteCond %{HTTPS} !=on
   RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
   RewriteRule ^/(.*) https://%{ИМЯ_СЕРВЕРА}/$1 [R,L]   
# КОНЕЦ: Конфигурация для letsencrypt
 <Каталог "/opt/bitnami/apache/htdocs">
   Индексы опционов FollowSymLinks
   Разрешить переопределить все
   Требовать все предоставленные
 </Каталог>

 # Документы об ошибках
 Документ об ошибке 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>

Я добавил правильные значения корневого домена и поддомена «ServerName» и «ServerAlias» на основе рекомендаций, приведенных в этом документе: - [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, и после попытки решить эту проблему самостоятельно мне нужна помощь, так как я, возможно, что-то здесь упускаю.

Заранее спасибо за помощь.

Рейтинг:0
флаг cn

вам нужно

sudo /opt/bitnami/ctlscript.sh перезапустить apache

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.