我正在google搜索并找到了几个解决方法,但你必须定义每个目录。
其中8888是Apache正在侦听的内容(nginx:80 - > localhost:8888)
任何想法如何解决这个问题并让它像文件夹一样正常转发?
答案 0 :(得分:2)
我有一个类似的问题,清漆和nginx(端口80上的清漆代理到nginx监听8080)并且需要添加“port_in_redirect off;” ... server_name_in_redirect需要保持运行,因此nginx知道它正在处理哪个主机。
答案 1 :(得分:1)
以下应该可以解决问题,但需要更多的思考/工作,因为一次只能使用一个位置块:
location ~ ^(.*[^/])$ {
if (-d $document_root/$1) {
rewrite ^(.*)$ $1/ permanent;
}
}
(未经测试)
答案 2 :(得分:1)
您可以在服务器部分设置“server_name_in_redirect off”
server{
listen 80 default;
server_name localhost;
server_name_in_redirect off;
...
...
}
那就行了; - )
HTH。
编辑:只需格式化。
答案 3 :(得分:0)
这是最适合我的魔力:
try_files $uri $uri/ @redirect;
location @redirect {
if ($uri !~ '/$') {
return 301 $uri/$is_args$args;
}
}
此处的'if'语句是安全的:http://wiki.nginx.org/IfIsEvil