Apr 27, 2012
tom

nginx rewrite with php-fpm

Question

I have debian server with nginx + php-fpm on board.

nginx version: nginx/1.0.15PHP 5.3.10-1~dotdeb.1 with Suhosin-Patch (cli) (built: Feb  3 2012 00:21:57)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
    with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
    with Suhosin v0.9.33, Copyright (c) 2007-2012, by SektionEins GmbH

this server is for facebook applications. server will host several applications, each application has a php file as an entry point, like history.php, collection.php etc.

the question is how to change server config in order to process the URIs like this

domain.com/facebook/history/

processes like

domain.com/facebook/history.php

but browser url stays the same.

here is my nginx config

server {
    listen                  80;
    keepalive_timeout       70;
    server_name             domain.com;
    root                    /var/www/public;
    index                   index.php index.html;    location / {
            try_files $uri $uri/ /index.php?q=$uri&$args;
    }
    location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico)$ {
            access_log        off;
            expires           1d;
    }    location ~ .php$ {
            fastcgi_pass    unix:/var/run/php5-fpm.sock;
            fastcgi_index   index.php;
            fastcgi_param   SCRIPT_FILENAME  /var/www/public$fastcgi_script_name;
            include fastcgi_params;
    }    location = /favicon.ico {
            log_not_found off;
            access_log off;
    }    location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
    }    ## There is not apache on server but still
    ## Disable viewing .htaccess & .htpassword
    location ~ /\.ht {
            deny  all;
    }
}

Answer

Make sure you’ve catched all other locations with nginx rules and add this to location /

    rewrite ^/(.*)/(.*)/$ /$1/$2.php last;
Answered by Dmitry Paskal

Related posts:

  1. Nginx doesn’t send _SERVER[“DOCUMENT_ROOT”] to PHP-fpm
  2. nginx php-fpm empty site
  3. nginx + PHP-FPM = “permission denied” error 13 in nginx log; configuration mistake?
  4. php5-fpm + nginx + drupal7 : keeps sending me index.php for download
  5. php pages in a nginx + php-fpm server doesn’t load

Leave a comment