背景
我正在向我们在 Nginx 上运行的现有网站添加 Dockerized 博客堆栈(Wordpress + MariaDB)。 location /
已经提供了网站,我被指示向 Nginx 配置添加逻辑,其中 /blog
将所有流量重定向到 Docker 容器。
尝试 1
localhost:9999
启动了 wordpress 容器在服务器上。 location ^~ /blog { proxy_pass http://localhost:9999; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; }
问题:
Wordpress 重定向
http://server/blog
至
http://wp-admin/install.php
,因为没有这方面的规定,所以我得到了 404。
尝试 2
我改了
location
处理
/blog
以及任何包含
wp-.*
的 URL .假设所有 Wordpress 页面都具有该 URL。
location ~ ^/(blog|wp-.*) {
这通过 Wordpress 设置起作用。
如果我明确访问
http://server/wp-admin
我可以转到博客管理页面。
问题:
http://server/?p=31
是博客文章的链接。 尝试 3
只是为了它,我重定向了
location /
到 Docker 容器,博客运行良好。但遗憾的是,这不是我的问题陈述。
题
为了满足来自所有 wordpress 特定的请求,我接下来该怎么做?当这里可能有更优雅的解决方案时,我觉得我陷入了与正则表达式搏斗的循环。
引用
请您参考如下方法:
根据自我回答的 SO 问题 https://stackoverflow.com/a/41479776/1264360
// add these lines to wp-config.php
define('WP_SITE_URL', 'http://example.com/blog');
define('WP_HOME', 'http://example.com/blog');
$_SERVER['REQUEST_URI'] = '/blog' . $_SERVER['REQUEST_URI'];