【问题标题】:Apache rewrite rule with 1 AND and 8 OR conditions具有 1 AND 和 8 OR 条件的 Apache 重写规则
【发布时间】:2014-07-18 07:37:16
【问题描述】:

我有一种情况,我需要在 apache 中应用 8 个 rewritecond 并从这 8 个条件中排除 1 个 IP。 默认情况下,重写条件遵循 [AND]。 现在,我该如何编写规则:

A [AND] (B [OR] C [OR] D [OR] E [OR] F [OR] G [OR] H [OR] I)

如果我的问题不清楚,请告诉我。

提前致谢。

【问题讨论】:

  • 你的问题不清楚。请在条件周围加上括号,以便我们知道什么是什么。也请把它分成几行。例如,你想要(A [AND] B ) [OR] C [OR] D [OR] E [OR] F [OR] G [OR] H [OR] I,还是A [AND] ( B [OR] C [OR] D [OR] E [OR] F [OR] G [OR] H [OR] I)...另一个也一样。

标签: mod-rewrite


【解决方案1】:

将您的[OR] 条件放在首位。这是一个例子:

RewriteCond %{REQUEST_URI} /a/ [OR]
RewriteCond %{REQUEST_URI} /b/ [OR]
RewriteCond %{REQUEST_URI} /c/ [OR]
(...)
RewriteCond %{REQUEST_URI} /y/ [OR]
RewriteCond %{REQUEST_URI} /z/ 
RewriteCond %{REQUEST_URI} ^/glossary/
RewriteRule ^/glossary/([a-z])/ glossary.php?letter=$1 [L]

有了明确的括号,你就得到了:

(((((((B [OR] C) [OR] D) [OR] E) [OR] F) [OR] G) [OR] H) [OR] I) [AND] A

【讨论】:

  • 谢谢!我会试试这个,让你知道!
  • 我的要求已更改,因此无法尝试您的解决方案。对不起!
  • 好的,不管你有什么新要求,如果这篇文章回答了你原来的问题,你可以设置为接受。如果你愿意,你可以测试它here。如果您对新要求有新问题,请随时提出其他问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-07
  • 2013-04-24
相关资源
最近更新 更多