在 AWS Elastic Beanstalk 上安装新的 WP MultiSite 时重定向循环

Redirect Loop on new WP MultiSite install on AWS Elastic Beanstalk

按照本指南在 Elastic Beanstalk 上设置 WordPress 4.5.2: http://d0.awsstatic.com/whitepapers/deploying-wordpress-with-aws-elastic-beanstalk.pdf

演练的所有要点都得到了严格的遵循——除了以下例外...

  1. MySQL 数据库是使用 ElastiCache 通过 RDS 直接设置的,而不是通过 Elastic Beanstalk 界面。 (数据库连接没有问题)

  2. 我使用的是开发域名而不是 CloudFront 域。 (在激活多站点之前没有解决网站上任何页面的问题)

注意:域已在 GoDaddy 注册(使用自定义 NS 信息更新)。 Hosted Zone 在 Amazon Route53 中设置。域(无 www.)的记录指向 CloudFront 端点。一条 CNAME 记录指向 www.仅域名(无 www.)。

WordPress 地址和站点地址(在 WP 常规设置中)都指向 http://mydevsitename.com

网站上唯一活跃的插件是 W3TotalCache(用于通过 CloudFront - Origin Push 的 CDN)和 Yoast 的 WP SEO(两者的当前版本)。主题是 2016 - 没有修改。

启用 WP 多站点在我的 wp-config.php 文件中。 通过工具/网络启用子文件夹多站点网络。 抓取更改 .htaccess 和 wp-config.php

的代码

这是生成的 .htaccess 代码...

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*)  [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$  [L]
RewriteRule . index.php [L]

使用 WP SEO by Yoast 插件中的 .htaccess 编辑器对 .htaccess 进行了更改,以避免必须部署新的 EBS 应用程序。通过从活动 EC2 实例下载 .htaccess 来验证更改。 (更改后仍可从前端访问网站。)

这是生成的 wp-config 更改...

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'mydevsitename.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

我从本地的暂存环境(文件夹 /var/app/current/)下载了 web 文件夹。我将此代码添加到 wp-config.php。压缩它并将其部署为 Elastic Beanstalk 中的新应用程序。这会在站点的前端创建一个重定向循环。

我仍然可以毫无问题地浏览 WP 管理区域 - 100% 的功能。 (上传媒体、安装插件、向网络添加新站点等)由于重定向循环,前端的零功能。

这对我来说毫无意义。任何帮助将不胜感激。

终于想出了解决这个问题的方法。以为我会分享以防其他人遇到同样的问题...

问题是由于 WordPress 安装转换为多站点时引起的。

尽管这是全新安装,但在设置 W3 Total Cache 之前应将 WP 安装切换到多站点。我假设当 WP 切换到多站点时,单个站点的缓存文件和配置可以创建重定向循环。