好吧,我真的很困惑。我有一个在虚拟机中运行 nginx 的 Web 服务器。我将主机的 8082 端口转发到虚拟机中的 80 端口。事实上,运行结果exampledomain.dev:8082
与预期一致,显示网页。
当我输入这样的 URL 时,就会出现问题exampledomain.dev:8082/subdirectory
浏览器将我重定向到exampledomain.dev/subdirectory
没有端口号的网址,因此什么都不起作用。但如果我在网址后面添加一个反斜杠,exampledomain.dev:8082/subdirectory/
它就可以正常工作。
我的问题是,我如何指向exampledomain.dev:8082/subdirectory
同exampledomain.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;