gpt4 book ai didi

wordpress - CodeIgniter 与 Wordpress,https 与 http,在 AWS 上与 Load Balancer,Wordpress 永久链接不工作

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:08 25 4
gpt4 key购买 nike

我有以下设置。具有负载均衡器的 Elastic Beanstalk 环境。安装在根目录中的 Web 应用程序正在使用 CodeIgniter。 Wordpress 安装在根目录下的/blog 子目录中。 CodeIgniter 应用程序需要 https,但 wordpress 需要是 http。负载均衡器配置为监听https和http,负载均衡器后面的实例是http。

我管理它的第一个配置是根目录中的 .ebextensions 文件。此文件与应用程序一起部署,以设置 .conf 将所有 http 流量重定向到 https EXCEPT/blog。该文件看起来像这样

files:
"/etc/httpd/conf.d/ssl_rewrite.conf":
mode: "000644"
owner: root
group: root
content: |
RewriteEngine On
<If "-n '%{HTTP:X-Forwarded-Proto}' && %{HTTP:X-Forwarded-Proto} != 'https'">
RewriteCond %{REQUEST_URI} !^/blog/
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</If>

配置的下一步是根目录中的 .htaccess 文件。这控制 CI 请求。它看起来像这样:

<FilesMatch "\.(ttf|otf|eot|woff|woff2|svg)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>

RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|uploads|blog|assets|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Options -Indexes

最后在包含 Wordpress 的/blog 目录中我有这个 .htaccess

RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]

CI 应用运行良好,http 请求正确发送到 https。/blog 根目录本身(即“主页”,如 http://example.com/blog )也可以正常工作。即使是/blog/子目录,如 http://example.com/blog/wp-admin/options-general.php工作正常。不起作用的是固定链接,例如 http://example.com/blog/my-article (大概是因为它们不是真实文件)。如果我更改永久链接设置以删除永久链接并允许帖子 url 看起来像这样 http://example.com/blog/?p=123这也有效。只有永久链接不起作用。

另一个问题(这应该是显而易见的)是,如果有人试图直接使用 https 访问博客,他们将收到混合内容警告和损坏的链接。所以我还需要重定向 https://example.com/blog/ * 返回 http。

我确信这个设置太复杂了,我可以删除两个 .htaccess 文件并将我的所有设置放在 .ebextensions 配置文件中,但我不确定该怎么做。我一直在拼凑几个解决方案,例如 thisthis几天,每个解决方案都会产生另一个问题。

对于任何建议 Wordpress 也应该是 https 的人,我并不反对,但是我已经在这条路上走了一个多星期,没有好的解决方案可以让我维护非 ssl 测试和开发环境它将正确部署到 AWS,而无需杂乱的插件、在生产中更改的文件,我无法轻易将其移植回测试和开发,以及其他 https/wordpress 问题的主机。最简单的解决方案似乎是运行 Wordpress http。我也愿意使用另一个 CMS 来替代 Wordpress。底线是我只希望博客在 AWS 上的 CI 下,在 https/http 中,一起玩得很好,并且易于部署。

还应该注意的是,在开发和测试中,一切正常。开发和测试之间唯一的显着区别是 .ebextensions 文件和 https 重定向。

感谢任何帮助。

最佳答案

看看这个视频: AWS solution您需要使用正确的 header ,以免发生这种情况,尤其是当您的负载均衡器未在实例和负载均衡器之间使用安全连接时

关于wordpress - CodeIgniter 与 Wordpress,https 与 http,在 AWS 上与 Load Balancer,Wordpress 永久链接不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39650843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com