我使用 wordpress 制作了一个登录页面,托管在 example.com 上。我有一个在 app.example.com 上运行的应用程序,该应用程序的外部 URL 为。当用户尝试访问 wordpress 文件时,它应该从 example.com 提供服务,如果该 URL 或文件夹不可用,则必须屏蔽 URL,并且必须转到远程 URL,即 example.com/$1。我尝试使用 nginx 反向代理,但它不起作用。
location / {
try_files $uri $uri/ /index.php?$query_string @proxy;
}
location @proxy {
proxy_pass https://example.com/$1;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
答案1
仅try_files
检查文件系统上是否存在实际文件。一旦找到存在的文件,它就会使用该文件来提供响应。try_files
不对任何 HTTP 状态代码采取行动。
由于您/index.php
的文件系统中始终有该@proxy
目标,因此从未使用过。
您需要通过挂接到 WordPress 404 错误生成挂钩并在那里执行代理来实现该功能。