Nginx拒绝所有文件/嵌套文件,并将所有请求转发到index.php
目标是阻止每个文件/嵌套文件以及根文件,并将所有流量转发到index.php,但静态目录或嵌套静态目录中的文件除外 这里是配置到目前为止,它重定向所有流量,但与阻止其他问题Nginx拒绝所有文件/嵌套文件,并将所有请求转发到index.php,nginx,Nginx,目标是阻止每个文件/嵌套文件以及根文件,并将所有流量转发到index.php,但静态目录或嵌套静态目录中的文件除外 这里是配置到目前为止,它重定向所有流量,但与阻止其他问题 listen 80 default_server; root "/Applications/MAMP/htdocs/test"; access_log /Applications/MAMP/logs/nginx_access.log; err
listen 80 default_server;
root "/Applications/MAMP/htdocs/test";
access_log /Applications/MAMP/logs/nginx_access.log;
error_log /Applications/MAMP/logs/nginx_error.log;
# block hidden files
location ~ /\. {
deny all;
}
# forward all traffic to index.php
location / {
index index.php;
try_files $uri /index.php$is_args$args;
}
# block everthing else
# location ~* ^\/.+$ { block all; }
# only allow files inside static directory (even from nested static)
location ~* ^.*\/static\/.*$ {
allow all;
}
试试这个:
location / {
rewrite . /index.php last;
}
location ~ /\. {
deny all;
}
location ~* /static/ {
try_files $uri /index.php$is_args$args;
}
如果未找到从
静态
目录请求的文件,是否需要将请求重定向到index.php
?或者只返回404HTTP错误?是重定向到index.phpI。我们已经尝试过这个-在根上得到一个空响应。空白页没有显示。您是如何处理PHP脚本的?PHP-FPM还是apache后端?无论如何,请尝试将rewrite
指令的break
标志替换为last
(编辑了我的答案)。它似乎可以工作,但现在出现了另一个问题/some?foo=bar,显示500个内部服务器错误查询参数抛出500个内部服务器错误(跟随您的答案,break似乎不工作)你能简单地重写一下吗/index.php last代码>?