Nginx,无法执行简单重写(对于 wiki 软件?)

Nginx,无法执行简单重写(对于 wiki 软件?)

我认为fastcgi/php5-fpm使用 Unix socks 的设置是相当标准的,我的网站的配置文件(请原谅查找和替换)如下:

server {
    listen 80;
    server_name example.com www.example.com;

    access_log /srv/vhost/sites/example/logs/access.log;
    error_log /srv/vhost/sites/example/logs/error.log;

    root /srv/vhost/sites/example/public_html;
    index index.php index.html index.htm;

    location / {
        index index.php;
        try_files $uri $uri/ @wikka;
    }

    location @wikka {
        rewrite ^(.*/[^\./]*[^/])$ $1/ last;
        rewrite ^(.*)$ /wikka.php?wakka=$1 last;
    }


    location ~ \.php$ {
      try_files $uri = 404;

      fastcgi_split_path_info ^(.+\.php)(/.+)$;

      include fastcgi_params;
      fastcgi_param  SCRIPT_FILENAME /srv/vhost/sites/example/public_html$fastcgi_script_name;
      fastcgi_index  index.php;
      fastcgi_pass   unix:/etc/nginx/sockets/example.sock;
    }
}

我似乎永远无法将其重写/xxxwikka.php?wakka=xxx

我通常在这些重写尝试中总是会得到 502 BAD GATEWAY,并且日志每次都显示几乎相同的内容:

[error] 19289#0: *6 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 174.1.235.8, server: example.com, request: "GET /Home HTTP/1.1", upstream: "fastcgi://unix:/etc/nginx/sockets/example.sock:", host: "example.com"

你知道会发生什么吗?你知道如何在 nginx 中重写上述简单示例吗?似乎有人要求提供类似的信息(WikkaWiki 是名称,此处:为 wikkawik​​i 重写 nginx但没有成功)

我尝试过各种@locations,或者将重写添加到各个位置,last;最后break;经常陷入重定向循环。

我总是上传新的配置和SIGHUP(或通过重新启动init.d)nginx,并在nginx -t您需要该信息之前进行测试以确保它至少是有效的。

答案1

尝试将 Location ~.php 块内的所有内容重新复制到 Location @wikka 块中。

相关内容