mod_rewrite:隐藏PHP扩展并将查询字符串显示为目录

mod_rewrite:隐藏PHP扩展并将查询字符串显示为目录,php,mod-rewrite,Php,Mod Rewrite,我有扩展名为.php的文件,我想隐藏它们,并将查询字符串显示为重写的php扩展的内部目录 换句话说,我想要https://domain.com/page.php 使用https://domain.com/page/(带结尾斜杠)和 https://domain.com/page/?id=1可通过 https://domain.com/page/1/(也带有结尾斜杠) 我还想访问带有.php扩展名的页面,返回404未找到 如何在.HTACCESS文件中执行此操作?HTACCESS需要如下所示: R

我有扩展名为
.php
的文件,我想隐藏它们,并将查询字符串显示为重写的php扩展的内部目录

换句话说,我想要
https://domain.com/page.php

使用
https://domain.com/page/
(带结尾斜杠)和

https://domain.com/page/?id=1
可通过

https://domain.com/page/1/
(也带有结尾斜杠)

我还想访问带有
.php
扩展名的页面,返回404未找到


如何在
.HTACCESS
文件中执行此操作?

HTACCESS需要如下所示:

RewriteEngine On
RewriteRule ^([A-z0-9]+)/$ $1.php
RewriteRule ^([A-z0-9]+)/([1-0]+)/$ $1.php?page=$2
对于自定义404错误,您将使用:

ErrorDocument 404 /404/
但是,您需要确保将第一条重写规则应用于404页面。 您需要一个
404.php
文件。

您可以试试这个。如果您想自己编写规则,它相当简单:它使用与PHP preg_*函数相同的正则表达式:)

在您的特定实例中,使用
RewriteRule^([A-z0-9]+)/([1-0]+)/$$1.php?page=$2