gpt4 book ai didi

regex - mod_rewrite : can a back reference be referenced twice?

转载 作者:行者123 更新时间:2023-12-01 05:25:41 25 4
gpt4 key购买 nike

我有一个重写规则(在 Apache htaccess 文件中),它试图从一次捕获($ 1)中使用两次反向引用:

RewriteRule ^([A-Za-z0-9_-]+)/?$ $1.php?nav=$1

查询字符串似乎被保留为空,例如
example.com/new

正在被重写为
example.com/new.php?nav=

我想要的是
example.com/new.php?nav=new

我的问题:我可以在表达式中两次引用 $1 吗?

更新:

Apache documentation在 mod_rewrite 上表示您可以在重写规则的替换部分中多次引用捕获。但是,在尝试了几天后,我无法使其正常工作。我确实得到了通过在线正则表达式测试人员的规则,但不在我的网站上。最后,我重新设计了我的菜单系统,以便我可以使用更简单的重写规则。

最佳答案

您使用的这个正则表达式是错误的:

^(A-Za-z0-9-_)$

范围只允许在方括号中,您需要使用 +访问器匹配 1 个以上的字符。

用这个替换你的 RewriteRule:
RewriteRule ^([a-z0-9_-]+)/?$ $1.php?nav=$1 [L,NC,QSA]

关于regex - mod_rewrite : can a back reference be referenced twice?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13978780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com