我需要使用mod_rewrite来检查特定模式是否在txt文件中,并且只有在找到它时才重定向 . 我想根据它们是否包含在 Map 文件中找到的用户ID,将URL重定向到启动页面 .
所有用户ID都符合相同的模式,因此我匹配该模式并将其提供给我的映射 . 假设用户ID可能看起来像这样
12ab-34bc-5601
模式和后续重定向的匹配工作正常 . 如果找到匹配项,则会将用户重定向到我的启动页面 . 但是,如果在 Map 中找不到匹配项,则会将其重定向到原始请求 . 即使我使用 L
标志,这也会创建一个重定向循环 .
RewriteEngine on
RewriteMap UserBlockMap txt:/home/username/users.map
RewriteRule <user id pattern> ${UserBlockMap:$3|$1} [R,L,NE]
有什么办法可以打破这个重定向循环,或者RewriteMap不是我想在这里使用的工具吗?
1 回答
我之前没有意识到,但RewriteRule可以重新启动并检查RewriteCond . 我找到的解决方案就是这个 .
基于此博客文章中概述的内容 . http://www.jeremytunnell.com/posts/mod_rewrite-attempting-to-bend-rewritemap-rewritecond-and-rewriterule-to-my-will