【问题标题】:Path to the website is causing trouble using the website name网站路径导致使用网站名称出现问题
【发布时间】:2019-08-15 13:06:22
【问题描述】:

我有两个网站:

website.com
dev.website.com 

这两个网站都有基于上述不同的配置。我编写了一个代码来识别开发和主网站,但它总是在选择开发,即使我在主网站上。

代码如下:

<cfif ReFindNoCase("^(dev\.)?website\.com$",CGI.SERVER_NAME) NEQ 0>

【问题讨论】:

  • 因为? 等同于“匹配 个或更多”dev. 的实例。在这两种情况下都是如此。摆脱?跨度>
  • &lt;cfif ReFindNoCase("^(dev\.)website\.com$",CGI.SERVER_NAME) EQ 0&gt; 指的是 dev - 对吗?
  • 没有。 0 表示它不是 dev。

标签: regex coldfusion lucee


【解决方案1】:

处理这个问题的一种更简单、更少 RegExy 的方法可能是

<cfif listFirst( cgi.server_name, '.') NEQ 'dev' >

【讨论】:

  • 好吧,如果你要使用常识...... ;-)
  • @Ageax 我喜欢 RegEx,但它们并不总是最适合这项工作的工具。
【解决方案2】:
<cfset inDevelopment = (reFindNoCase("^dev\.website\.com$", CGI.SERVER_NAME) gt 0)>
<cfset inProduction  = (not inDevelopment)>

但为了简单起见,您应该更喜欢 Scott 的解决方案,除非您真的必须检查完整的主机名:

<cfset inDevelopment = (listFirst(CGI.SERVER_NAME, ".") eq "dev")>
<cfset inProduction  = (not inDevelopment)>

附带说明:如果您的域实际上是dev.comlistFirst 解决方案将始终让您处于开发阶段。 :D

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-09
    相关资源
    最近更新 更多