【问题标题】:Regex solution for www and non-www domainwww 和非 www 域的正则表达式解决方案
【发布时间】:2011-05-03 11:13:34
【问题描述】:

我需要一些帮助

工作代码:正则表达式匹配 xxx.domain.com

$HTTP["host"] =~ "^[^.]+\.domain\.com$" {
    evhost.path-pattern = vhosts_dir + "/company/domain.com/subdomains/%3/"
}

Www 不工作:(匹配 domain.com 的正则表达式工作)

else $HTTP["host"] =~ "^([^.]+\.)?domain\.com$" {
 evhost.path-pattern = vhosts_dir + "/company/domain.com/public/"
}

如何让 www 使用第二个代码示例?

^(^|www.)example.com$

谢谢

马格纳斯

【问题讨论】:

  • 第一个正则表达式中的 + 后域是什么?那将匹配 domainnnnnn。此外,您在第二个示例中丢失了字符串 ^ 开头的锚点。这些让我觉得你可能无意中犯了一个错误,改变了 Stackover 流程​​问题的内容 - 你能检查一下吗?
  • 我现在更改了代码示例。更好?

标签: regex lighttpd vhosts


【解决方案1】:

只要匹配\bdomain.com$ 就足够了,除非您担心“bogus-domain.com”会出现。然后你可以写^(?:[^.]+\.)*domain\.com$。

您是否已规范化为小写?

【讨论】:

  • 感谢 tchrist 提供防止虚假域的代码。我从来不知道这种情况。我是新手,规范化为小写是什么意思?
  • ^(?:www|[^.]+\.)*domain\.com$
  • 一个不好的例子,但我希望你能理解我的想法。
  • 如果我更改两者的顺序,您的解决方案适用于 www,但子域的代码不起作用。我被卡住了:(
猜你喜欢
  • 1970-01-01
  • 2013-04-17
  • 1970-01-01
  • 2018-04-24
  • 1970-01-01
  • 2018-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多