我有扩展名为.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
文件中执行此操作?
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
文件。
你可以
试试这个mod_rewrite规则生成器。如果你想自己编写规则,这相当简单:它使用与 PHP preg_* 函数相同的正则表达式:)
在您的特定实例中,请使用RewriteRule ^([A-z0-9]+)/([1-0]+)/$ $1.php?page=$2