我正在尝试设置一些重写 (1).com / images / *会自然加载 (2).com / *将被重写为.com / loader.php?control = * 但是下面的代码完全可以工作,除了它将执行.com / config.php而不是将其重写为.com / loader.php?control = config.php
如何防止重写被重写?我只想要执行.php文件,如果它是loader.php或者在images文件夹中。 (已经尝试了几个小时)
server {
listen 80;
root /mnt/web/test_com/public_html;
server_name test.com;
index index.html index.php index.htm;
location ~ .php(.*)$ {
fastcgi_pass unix:/tmp/php-70-cgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $DOCUMENT_ROOT$fastcgi_script_name;
fastcgi_param PATH_INFO $2;
include fcgi.conf;
}
location / {
rewrite ^/(.*)$ /loader.php?control=$1 last;
}
location /images/ {
}
}
谢谢!
答案 0 :(得分:0)
您应该查看try_files指令
与return和rewrite指令一样,try_files指令放在服务器或位置块中。作为参数,它需要一个或多个文件和目录的列表以及最终的URI
阅读nginx博客上写的整篇博文: https://www.nginx.com/blog/creating-nginx-rewrite-rules/