Search code examples
phpsql-server.htaccessweb-services

How to remove .php extension from url


<?php
$url = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$url_array = explode("/", $url);
$action = end($url_array);

switch ($action) {
    case "login":
        login();
        break;
    case "register":
        register();
        break;
}
?>

Here I need to remove the .php extension from my URL like I have to type like https://example.com/user.php/login for login page and https://example.com/user.php/register for register page.

But I need the URL to be https://example.com/user/login for the login page and https://example.com/user/register for register page and so one

Here I want to remove the .php extension from the user page. Please suggest any code for .htaccess


Solution

  • please try this

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.+)/(.+)$  https://www.example.com/$1.php/$2 [L,NC,P]
    

    Of course, where you put this rule is also important. Because it is a rule that may contain many links.

    I prefer something like the following rule:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^user/(.+)$  https://www.example.com/user.php/$1 [L,NC,P]