之前有需求写一个nginx下重定向的问题,比如访问www/test/二级目录下的任何文件都会跳转到test下的a.php,最终访问结果是localhos/www/test/或者localhost/www/test/a.asdf访问一些未知的文件或者php都会下载文件而不会解析,网上搜索好多结果都是alias方式的解决方案,而博主本人用的是rewrite。
代码如下
//结果是始终无法解析php文件
location ~^/test/ {
root "C:/phpStudy/WWW/t2";
if (!-f $request_filename) {
rewrite ^/test/.*\.(.*) /test/a.php last; break;
}
}
//最后想到nginx在没有设置虚拟主机的情况下默认请求解析的document root 是在根目录 既localhost/www/,所以重定向应该写在根目录才会解析,既:
location / {
index index.html index.htm index.php l.php;
rewrite ^/test/.*$ /test/a.php last;break;
autoindex off;
}