【发布时间】:2010-10-26 23:08:54
【问题描述】:
全部,
我在我的一个 RewriteRules 中遇到了一个有趣的小怪癖,我想通过使用命名的反向引用来解决这个问题。但是据我所知,这在 Apache 的 mod_rewrite 中是不可能的。
我有两个传入的 url,每个都包含一个关键变量,需要将其重写为相同的底层框架操作。
传入的网址:
/users/list/page-2
/users/list/2
所需的重写端点
/?module=users&action=list&pagenum=2
我本来想做这样的事情
RewriteRule ^/(?P
([\w]+))/(?P ([\w]+))/(page-)?(?P ([\ d]+))$ /?module=${module}&action=${action}&pagenum=${pagenum} [L,QSA]
但是 Apache 根本不想这样玩,并在命名反向引用的位置给我空值。为了解决这个问题,我使用了对捕获组的数字引用($1、$2、$4)(但我几乎达到了 N=9 apache 限制的一半)。所以这对我来说不是一个表演停止者。
我只想知道,Apache 的 mod_rewrite 中是否有命名反向引用,如果有,为什么我的 RewriteRule 的模式不匹配?
谢谢, 伊恩
【问题讨论】:
标签: regex mod-rewrite apache2 backreference