Nginx 405不允许使用特定的' .php' -file

时间:2014-01-31 08:11:30

标签: php configuration nginx

我遇到了Nginx的问题。我只是在学习它,所以它不知道解决这个问题。

我的一个插件试图POST到一个以'PHP'扩展名结尾的特定网址。 该文件不是文件夹根目录中的位置:' web '。但是在目录中: 网络/插件/ moxiemanager / api.php 即可。但我总是收到405。

我需要在配置中更改什么?

提前致谢。

我的Nginx配置:

server {
   listen 80;
   server_name kevin.dev;
   root /var/www/html/kevin/web;

location / {
    try_files $uri @rewriteapp;
}

location @rewriteapp {
    rewrite ^(.*)$ /app.php/$1 last;
}

location ~ ^/(api|app|app_dev|config)\.php(/|$) {
    fastcgi_buffer_size 128k;
    fastcgi_buffers 4 256k;
    fastcgi_busy_buffers_size 256k;
    #fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param HTTPS off;
}

error_log /var/log/nginx/kevin_error.log;
access_log /var/log/nginx/kevin_access.log;

}

1 个答案:

答案 0 :(得分:0)

这可能不是最好的方法,我仍然找到了nginx的方式,但它现在对我有用。

我复制了app.php的现有位置块以覆盖moxia脚本,所以对我来说,添加这个就完成了工作......

location ~ moxiemanager/api.php$ {
    fastcgi_pass   unix:/var/run/php5-fpm.sock;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param SERVER_PORT 80;
    include        /etc/nginx/fastcgi_params;
}

包含以moxiemanager / api.php结尾的网址。我不是100%肯定这样做的安全隐患。