首页 > 解决方案 > 如何从 url 中删除 .php 扩展名

问题描述

<?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;
}
?>

在这里,我需要从我的 URL 中删除 .php 扩展名,就像我必须输入https://example.com/user.php/login用于登录页面和https://example.com/user.php/register用于注册页。

但是我需要 URL 是https://example.com/user/login的登录页面和https://example.com/user/register的注册页面等等

在这里,我想从用户页面中删除 .php 扩展名。请为 .htaccess 建议任何代码

标签: phpsql-server.htaccessweb-services

解决方案


请试试这个

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

当然,你把这条规则放在哪里也很重要。因为它是一个可能包含许多链接的规则。

我更喜欢以下规则:

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

推荐阅读