防止Nginx删除端口号

防止Nginx删除端口号

好吧,我真的很困惑。我有一个在虚拟机中运行 nginx 的 Web 服务器。我将主机的 8082 端口转发到虚拟机中的 80 端口。事实上,运行结果exampledomain.dev:8082与预期一致,显示网页。

当我输入这样的 URL 时,就会出现问题exampledomain.dev:8082/subdirectory

浏览器将我重定向到exampledomain.dev/subdirectory没有端口号的网址,因此什么都不起作用。但如果我在网址后面添加一个反斜杠,exampledomain.dev:8082/subdirectory/它就可以正常工作。

我的问题是,我如何指向exampledomain.dev:8082/subdirectoryexampledomain.dev:8082/subdirectory/一个地方以及如何防止 nginx 删除端口号?

如果重要的话,这是我的虚拟机内部的实际 nginx 配置:

server {
    listen 80;
    server_name exampledomain.dev;
    root /srv/www/exampledomain;
    index index.php;
    rewrite ^([^.]*[^/])$ $1/ permanent;

    location /subdirectory {
        try_files $uri $uri/ /subdirectory/index.php?$args;
    }
}

答案1

最简单的解决方法是将重写改为

rewrite ^([^.]*[^/])$ http://exampledomain.dev:8082/$1/ permanent;

相关内容