Sign up ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I've been running into some serious problems with my URL rewrites and I can't seem to fix it on my own strength and knowledge and troubleshooting on the web! Basically what happens is that when I click a link anywhere in my Magento back-end it completely messes up the URL that follows as can be seen here: It keeps putting index.php somewhere in the middle of the URL and then continues filling the URL with the link that I clicked. this loops forever until it gives me a 500 internal error or "The page isn't redirecting properly" I'm pretty sure it has to do with my vhost configuration but I can't seem to figure out the exact problem, I've been trying to take advice from the already asked questions but this didn't help. I also commented

 #Forward paths like /js/index.php/x.js to relevant handler
 #   location ~ .php/ {
 #       rewrite ^(.*.php)/ $1 last;
 #   } 

because it seemed to mess things up even more and also because I already have a PHP location, keep in mind I'm not an expert and i'm just trying to get this to work, if anyone could give me some pointers I'd be very grateful!

My Vhost looks like this

      server {
      listen   80; ## listen for ipv4; this line is default and implied
      listen   [::]:80 default_server ipv6only=on; ## listen for ipv6
      listen 443 default ssl;

 root /usr/share/nginx/www/xxxxxxxx/public/;
index index.html index.htm;

# Make site accessible from http://<serverip/domain>/

error_log  /var/log/nginx/error.log; #warn; #op warn niveau word er logged
#access_log off; #Disabled voor I/O besparing
access_log /var/log/nginx/access.log;

    location / {
   index index.html index.php;
   #autoindex on;
  ## If missing pass the URI to Magento's front handler
   try_files $uri $uri/ @handler;
   expires max; ## 

    ## These locations need to be denied
    location ^~ /app/                { deny all; }
    location ^~ /includes/           { deny all; }
    location ^~ /lib/                { deny all; }
    location ^~ /media/downloadable/ { deny all; }
    location ^~ /pkginfo/            { deny all; }
    location ^~ /report/config.xml   { deny all; }
    location ^~ /var/                { deny all; }

 ## Disable .htaccess and other hidden files
    location  /. {
 access_log off;
 log_not_found off;
        return 404;
 deny all;

 ## Magento uses a common front handler
    location @handler {
        rewrite / /index.php;

 #Forward paths like /js/index.php/x.js to relevant handler
 #   location ~ .php/ {
 #       rewrite ^(.*.php)/ $1 last;
 #   }

##Rewrite for versioned CSS+JS via filemtime(file modification time)
location ~* ^.+\.(css|js)$ {
rewrite ^(.+)\.(\d+)\.(css|js)$ $1.$3 last;
expires 31536000s;
access_log off;
log_not_found off;
add_header Pragma public;
add_header Cache-Control "max-age=31536000, public";

    ## php-fpm parsing
location ~ \.php.*$ {

## Catch 404s that try_files miss
if (!-e $request_filename) { rewrite / /index.php last; }

## Disable cache for php files
expires        off;

## php-fpm configuration
fastcgi_pass   unix:/var/run/php5-fpm.sock;
fastcgi_param  HTTPS $https if_not_empty;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
include        fastcgi_params;

## Store code is located at Administration > Configuration > Manage Stores 
fastcgi_param  MAGE_RUN_CODE default;
fastcgi_param  MAGE_RUN_TYPE store;

## Tweak fastcgi buffers, just in case.
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;

Oh this might be important to know. Basically it first has this URL:‌​7fcb6b/ Then when I click on the hyperlink "configuration" for example, it creates this URL:‌​nfig/index/key/4015c27aea900ad7fceb13e27b76560c/?SID=8hnd42n7p7kdl1dbr1l61v9ga3 So basically it just keeps reusing index.php which totally destroys my website, help please! –

share|improve this question
What about nginx error log? –  Taras Chuhay May 26 '14 at 21:38

1 Answer 1

Posting my working nginx php config, found here:

location  /. { ## Disable .htaccess and other hidden files
    return 404;

location @handler { ## Magento uses a common front handler
    rewrite / /index.php;

location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler
    rewrite ^(.*.php)/ $1 last;

   location ~ .php$ { ## Execute PHP scripts
    if (!-e $request_filename) { rewrite / /index.php last; } ## Catch 404s that try_files miss

    expires        off; ## Do not cache dynamic content
    fastcgi_pass   unix:/var/run/php5-fpm.sock;
    fastcgi_param  HTTPS on;
    fastcgi_param  HTTPS $https;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param  MAGE_RUN_CODE store_code; ## Store code is defined in   administration > Configuration > Manage Stores
    fastcgi_param  MAGE_RUN_TYPE store;
    include        fastcgi_params; ## See /etc/nginx/fastcgi_params
share|improve this answer
Your answer did not help me at all, you just posted the original vhost from the official magento website, obviously that configuration doesn't work for me... I have a different problem that needs more then just a crude copy paste from an example website. –  Stefan Grob May 26 '14 at 8:01
If using this default configuration do you get any errors in nginx error log? –  Taras Chuhay May 26 '14 at 9:43

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.