Apr 27, 2012

nginx rewrite with php-fpm


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


processes like


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;


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