Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
nginx重写为php文件-正在下载文件_Php_Nginx_Rewrite - Fatal编程技术网

nginx重写为php文件-正在下载文件

nginx重写为php文件-正在下载文件,php,nginx,rewrite,Php,Nginx,Rewrite,首先,请原谅,我对nginx完全陌生 单站点,在根目录中运行Wordpress,在子目录中运行各种其他应用程序。据我所知,Wordpress永久链接/重写工作非常完美 问题:当直接浏览到所有php文件时,它们都能正常工作。但是,当访问/apply/时,文件将被下载和/或在浏览器中显示为纯文本。如果我直接浏览到/forums/apply.php,它可以正常工作 此站点的nginx配置: server_name site; root /var/www/site; index index.php in

首先,请原谅,我对nginx完全陌生

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

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

此站点的nginx配置:

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;
}
非常感谢您的任何建议。

更改

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


我遇到了同样的问题,将指令更改为
last
并没有解决问题。您的重写指令是在位置块内还是在服务器块内
break
last
在服务器块中表示相同的内容。只有在位置块内,它们才不同。
rewrite ^/apply/ /forums/apply.php last;