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

时间:2012-07-03 01:42:15

标签: 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找不到。

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

2 个答案:

答案 0 :(得分:1)

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文件。

答案 1 :(得分:0)

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

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