3

How do I remove index.php from my Joomla URLs? For example:

http://domain.com/index.php/webpage

should become

http://domain.com/webpage

I've been following some guides that I've found but it all result in a redirect loop, 404 or internal server error. I need some guidance please.

Here is my current config (excluding failing attempts).

server {
    listen [::]:80;
    server_name www.domain.com;
    return 301 http://domain.com$request_uri;
}

server {
    listen [::]:80;
    server_name domain.com;

    root /usr/share/nginx/www;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~/favicon.ico {
        access_log off;
        log_not_found off;
    }

    location ~ \.php$ {
        try_files $uri /index.php;
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
    }

    access_log /var/log/nginx/$host-access.log;
    error_log /var/log/wpms-error.log;
}
cnst
  • 25,870
  • 6
  • 90
  • 122
user1878980
  • 515
  • 2
  • 8
  • 21

1 Answers1

2

How do I remove index.php from my Joomla URLs? For example: http://example.com/index.php/webpage should become http://example.com/webpage. I've been following some guides that I've found, but it all result in a redirect loop…

As explained at nginx redirect loop, remove index.php from url, you'd want something like this to make sure there aren't any redirect loops:

index index.php index.html index.htm;
if ($request_uri ~ "^/(.*)(?<=/)index\.php/?((?<=/).*)?$") {    return  301 /$1$2;  }

The above assumes that manually omitting the index.php part of the URL is already handled correctly through the rest of your configuration.

Community
  • 1
  • 1
cnst
  • 25,870
  • 6
  • 90
  • 122