nginx重写为php文件-正在下载文件 [英] nginx rewrite to php file - File is being downloaded

查看:156
本文介绍了nginx重写为php文件-正在下载文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

首先,请原谅我,因为我是nginx的新手.

Firstly, pardon me as I'm entirely new to nginx.

单个站点,在根目录中运行Wordpress,并在子目录中运行各种其他应用程序.据我所知,Wordpress永久链接/重写工作正常.

Single site, running Wordpress in the root and various other applications in subdirectories. Wordpress permalinks/rewrites are working perfectly as far as I can tell.

问题:直接浏览所有php文件时,它们均可以正常工作.但是,在访问/apply/时,文件将被下载和/或在浏览器中显示为纯文本.如果我直接浏览到/forums/apply.php,它将正常运行.

The issue: All php files work correctly when browsing directly to them. However, when visiting /apply/, the file is downloaded and/or displayed as plain text in the browser. If I browse directly to /forums/apply.php, it works correctly.

此站点的nginx配置:

nginx config for this site:

server_name site;
root /var/www/site;
index index.php index.html index.htm;

location /apply {
  rewrite ^/apply/ /forums/apply.php break;
}

location / {
  if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php last;
    break;
  }
}


location ~ \.php {
    # for security reasons the next line is highly encouraged
    try_files $uri /index.php =404;

    fastcgi_param  QUERY_STRING       $query_string;
    fastcgi_param  REQUEST_METHOD     $request_method;
    fastcgi_param  CONTENT_TYPE       $content_type;
    fastcgi_param  CONTENT_LENGTH     $content_length;

    fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;

    # if the next line in yours still contains $document_root
    # consider switching to $request_filename provides
    # better support for directives such as alias
    fastcgi_param  SCRIPT_FILENAME    $request_filename;

    fastcgi_param  REQUEST_URI        $request_uri;
    fastcgi_param  DOCUMENT_URI       $document_uri;
    fastcgi_param  DOCUMENT_ROOT      $document_root;
    fastcgi_param  SERVER_PROTOCOL    $server_protocol;

    fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
    fastcgi_param  SERVER_SOFTWARE    nginx;

    fastcgi_param  REMOTE_ADDR        $remote_addr;
    fastcgi_param  REMOTE_PORT        $remote_port;
    fastcgi_param  SERVER_ADDR        $server_addr;
    fastcgi_param  SERVER_PORT        $server_port;
    fastcgi_param  SERVER_NAME        $server_name;

    # If using a unix socket...
    # fastcgi_pass unix:/tmp/php5-fpm.sock;

    # If using a TCP connection...
    fastcgi_pass 127.0.0.1:9000;
}

任何人和所有建议都将不胜感激.

Any and all suggestions are much appreciated.

推荐答案

更改

rewrite ^/apply/ /forums/apply.php break;

rewrite ^/apply/ /forums/apply.php last;

这篇关于nginx重写为php文件-正在下载文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆