我有一个php文件User.php / 100.
在我的.htaccess文件中,我有:
RewriteRule ^([^\.]+)$ $1.php [NC,L]
以上将User / 100页面重定向到User / 100.php。
如何将User / 100重定向到User.php / 100?
感谢。
答案 0 :(得分:1)
您当前的规则与单个捕获组中的整个路径匹配,然后将.php附加到组的末尾。
您正尝试将.php插入路径的中间位置。要实现这一目标,您需要将之前所需的部分与.php之后所需的部分匹配在不同的组中。
要实现这一目标,您需要一个如下规则:
RewriteRule ^([^/]+)(/\d+)$ $1.php$2 [NC,L]
(你可能会发现斜杠需要转义,在这种情况下正则表达式为^([^\/]+)(\/\d+)$
)
解释:
([^/]+)
将匹配1个或多个非/
的字符,并将其存储为组1。(/\d+)
将匹配/
后跟1位或更多位数,然后将其存储为第2组。$1.php$2
会将匹配重写为第1组,然后是.php,然后是第2组。