nginx“漂亮的网址”

nginx“漂亮的网址”

因此,从本质上讲,我目前面临的问题是无法完成以下工作。

http://example.net/url.php/value1/value2/value3

我尝试了各种 try_files 方法,但似乎都没有用。上面的方法实际上就是我需要做的全部,但这是我遇到的错误:

这是我当前配置的副本。

            server {
                listen          80;
                server_name     example;
                error_log       /var/log/nginx/error.log;

                index           index.php;
                root            /www/example.net;

                location / {
                    try_files $uri $uri/ /index.php =404;
                }

                location ~* \.php$ {
                    include fastcgi_params;
                    fastcgi_pass 127.0.0.1:9000;
                }
            }

我尝试了各种教程中关于 location / 中 try_files 的多种组合,但没有一种能达到我想要的效果。我要么得到 404 错误(如果 index.php 未包含在最后,因为它找不到文件或目录),要么得到 500 错误。

2013/01/23 07:21:35 [error] 1411#0: *1 rewrite or internal redirection cycle while internally redirecting to "/testing_nginx.php/test", client: 75.182.96.115, server: subeta, request: "GET /testing_nginx.php/test HTTP/1.1", host: "166.78.101.192"

答案1

您可以使用 Nginx URL 重写。例如,可以将其添加到您的 nginx.conf。

location / {
  rewrite  ^/pay/(.*)/(.*)$     /pay.php?p=$1&s=$2?   last;
  rewrite  ^/register$          /register.php?        last;

  location ~ \.ph[pb]$ {
    #PHP FASTCGI SETTINGS
  }
}

相关内容