【问题标题】:mod_rewrite not playing well with cfimport (Coldfusion) on OS X Lionmod_rewrite 在 OS X Lion 上无法与 cfimport (Coldfusion) 配合使用
【发布时间】:2011-11-15 16:51:02
【问题描述】:

在 OS X Lion 和 Coldfusion 9 开发者版上运行 Apache。我有以下 .htaccess 文件。

Options +FollowSymlinks
Options +Indexes RewriteEngine on RewriteBase /
RewriteCond %{REQUEST_URI} !=/index.cfm [NC]
RewriteRule ^([^/]+)/?$ /index.cfm?page=$1 [L,NC]
RewriteRule ^([^/]+)/([^/]+)/?$ /index.cfm?app=$1&page=$2 [L,NC]

它旨在处理诸如 mydomain.com/something 和 mydomain.com/something/else 之类的 URL。很正常的东西。

在我加载一个带有 cfimport 标记的文件之前,一切似乎都运行良好,如下所示:

<cfimport prefix="myLib" taglib="/lib/tags">

RewriteLog 显示这会被拾取、处理和重定向,这当然会破坏一切。

我尝试添加几个条件,例如:

RewriteCond %{REQUEST_URI} !=lib/tags/ [NC]
    RewriteCond %{REQUEST_URI} !=lib/tags [NC]
    RewriteCond %{REQUEST_URI} !=/lib/tags/ [NC]
    RewriteCond %{REQUEST_URI} !=/lib/tags [NC]
    
他们都没有阻止这个问题。

如果我重组目录以便像这样加载它:

<cfimport prefix="myLib" taglib="/lib/dir/tags">
一切安好。这不是一个选项,因为这是一个小组开发项目,我是唯一一个有问题的人,Windows/IIS 是目标部署环境。

顶部显示的基本 .htaccess 文件似乎可以在运行 Apache 的同事 Windows 机器上运行。

【问题讨论】:

    标签: macos coldfusion apache2 cfimport


    【解决方案1】:

    我不知道 cfimport 为什么/如何导致 mod_rewrite 触发 - 它甚至不应该为此与网络服务器对话。

    也许您需要在 CF admin 中创建一个/lib 映射?


    无论如何,你可以通过在开头加上一个否定的前瞻来阻止你的重写规则摆弄它,告诉它忽略lib/tags,就像这样:

    (?!lib/tags)
    

    将其放在^ 之后,用于第二个表达式。

    【讨论】:

    • 做到了。我同意这个问题没有意义,但你解决了它。我会投票赞成你的答案,但我对系统太陌生了。
    猜你喜欢
    • 2013-06-03
    • 2023-03-23
    • 2012-01-15
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    相关资源
    最近更新 更多