Apache 如何在htaccess文件中写入重写规则
我对重写规则有问题 我的链接 是www.something/group/group\u id/place/groupName 为此 重写基/Apache 如何在htaccess文件中写入重写规则,apache,mod-rewrite,Apache,Mod Rewrite,我对重写规则有问题 我的链接 是www.something/group/group\u id/place/groupName 为此 重写基/ RewriteRule ^group/(.*)/(.*)/(.*)$ /group.php?gid=$1 [QSA,NC,L] 有时我的url可能来自www.something/group/group\u id/groupName 在这两种情况下,我都必须重写为group.php,并且只需要groupid。如何编写重写规则以在这两种情况下都有效?尝试以下
RewriteRule ^group/(.*)/(.*)/(.*)$ /group.php?gid=$1 [QSA,NC,L]
有时我的url可能来自www.something/group/group\u id/groupName
在这两种情况下,我都必须重写为group.php,并且只需要groupid。如何编写重写规则以在这两种情况下都有效?尝试以下方法:
^group/(.+)(/|/.+)*$
它与
www.something/group/group\u id/place/groupName
www.something/group/group\u id/groupName
我从未使用过重写规则,所以它没有经过测试。如果你在你的问题上加上Regex标签,也许你会得到更多的答案- 使用惰性量词或阻止每个匹配组匹配/本身。按照当前的方式,第一组将尽可能多地匹配,从而产生不想要的结果
RewriteRule ^group/(.*?)/(.*?)/(.*?)$ /group.php?gid=$1 [QSA,NC,L]
RewriteRule ^group/([^\/]*)/([^\/]*)/([^\/]*)$ /group.php?gid=$1 [QSA,NC,L]
一种更好的方法,让人们省去不必要的部分:不需要在服务器端评估结果,您甚至可以这样做:
RewriteRule ^group/(\d+)(/.*)?$ /group.php?gid=$1 [QSA,NC,L]
这是基于您的组id是一个数字的假设