从.php / id文件中删除.php扩展名

时间:2017-11-20 13:28:42

标签: php .htaccess

我有一个php文件User.php / 100.

在我的.htaccess文件中,我有:

RewriteRule ^([^\.]+)$ $1.php [NC,L]

以上将User / 100页面重定向到User / 100.php。

如何将User / 100重定向到User.php / 100?

感谢。

1 个答案:

答案 0 :(得分:1)

您当前的规则与单个捕获组中的整个路径匹配,然后将.php附加到组的末尾。

您正尝试将.php插入路径的中间位置。要实现这一目标,您需要将之前所需的部分与.php之后所需的部分匹配在不同的组中。

要实现这一目标,您需要一个如下规则:

RewriteRule ^([^/]+)(/\d+)$ $1.php$2 [NC,L]

(你可能会发现斜杠需要转义,在这种情况下正则表达式为^([^\/]+)(\/\d+)$

解释:

  • ([^/]+)将匹配1个或多个非/的字符,并将其存储为组1。
  • (/\d+)将匹配/后跟1位或更多位数,然后将其存储为第2组。
  • $1.php$2会将匹配重写为第1组,然后是.php,然后是第2组。