我是NGINX的新手,在正则表达式中很糟糕。这就是我需要:
是一个重写规则:
NGINX重写规则排除
我已经做了很多谷歌搜索似乎无法找到我需要的东西。甚至没有一篇支持文章告诉我更多关于正则表达式的nginx用法。这是我最好的猜测:
location/{
rewrite ^(?!(/images/))(.*)$ profile.html?id=$2 break;
return 403;
}
我把它放在我的nginx.conf文件中。它有点工作。这将重写任何请求,如mysite.com/SOMETHING
到mysite.com/profile.html?id=SOMETHING
,但是,它也将改写mysite.com/
到mysite.com/profile.html?id=
。/images /排除似乎工作(因为我的图像正确加载),但是,即使去mysite.com/index.html
将重写为mysite.com/profile.html?=id=index.html
。
任何帮助将不胜感激。
我对NGINX不够熟悉,给你一个正确的答案,但它听起来像你可能想使用['try_files'](http://wiki.nginx.org/HttpCoreModule#try_files),让你只重写实际上不存在为文件的URL。例如,'index.html'确实存在为一个文件,因此该URL不应该被重写。我会说这甚至可能会覆盖你的'images'情况,因为如果_directory_存在,它不应该重写。 –