Skip to content

Instantly share code, notes, and snippets.

@slow-is-fast
Last active April 16, 2024 14:05
Show Gist options
  • Star 16 You must be signed in to star a gist
  • Fork 10 You must be signed in to fork a gist
  • Save slow-is-fast/68db4535780d6b46a8a8c777c1f2ba7a to your computer and use it in GitHub Desktop.
Save slow-is-fast/68db4535780d6b46a8a8c777c1f2ba7a to your computer and use it in GitHub Desktop.
[nginx] laravel remove index.php from url
# Remove index.php$
if ($request_uri ~* "^(.*/)index\.php$") {
    return 301 $1;
}

location / {
    try_files $uri $uri/ /index.php?$query_string;

    # Remove from everywhere index.php
    if ($request_uri ~* "^(.*/)index\.php(/?)(.*)") {
        return 301 $1$3;
    }
}

# Remove trailing slash.
if (!-d $request_filename) {
    rewrite ^/(.+)/$ /$1 permanent;
}

# Clean Double Slashes
if ($request_uri ~* "\/\/") {
    rewrite ^/(.*) /$1 permanent;
}
@momokang
Copy link

momokang commented Oct 3, 2018

Thanks for the solution, but you might have url like domain.com/index.php/slug, to solve this:

# Remove index.php$
if ($request_uri ~* "^(.*/)index\.php/*(.*)") {
    return 301 $1$2;
}

@gyan111
Copy link

gyan111 commented Dec 13, 2018

Where shall we put it?

I am getting "domain.com/index.php/slug"

I am on lighttpd server.

@cafeasia3
Copy link

# Remove index.php$
if ($request_uri ~* "^(.*/)index\.php/*(.*)") {
    return 301 $1$2;
}

I cant login phpmyadmin with this code, stuck at login screen. domain.com/phpmyadmin.

@anilken
Copy link

anilken commented Jan 22, 2020

Thanks, it worked for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment