【问题标题】:URLRewriteFilter and FW1URLRewriteFilter 和 FW1
【发布时间】:2012-08-27 12:47:19
【问题描述】:

我正在使用框架一 (FW/1)、Coldfusion 10 并尝试使用 Tuckey URLRewriteFilter 从 URL 中删除 index.cfm。我在 FW/1 设置中将 generateSES 设置为 true 并将 SESOmitIndex 设置为 true

我的 urlrewrite.xml 文件中有以下代码

<rule>
    <from>^/(.*)$</from>
    <to last="true">/index.cfm/$1</to>
</rule>

当我查看应用程序时,我收到 404 错误,因此我将 CGI 范围转储到我的 onMissingTemplate() 方法中,我看到以下键引起了我的注意。

PATH_INFO m/
PATH_TRANSLATED C:\Coldfusion10\cfusion\wwwroot\index.cf
CF_TEMPLATE_PATH  C:\Coldfusion10\cfusion\wwwroot\index.cf
SCRIPT_NAME //index.cf

似乎它正在扼杀请求/上下文等。我在 SO 上看到了其他一些帖子,但没有任何答案。

我在本地 Windows Vista 机器上使用 ColdFusion 10,并带有本地内置网络服务器。

谁能解释我做错了什么或者为什么会这样?我正在使用 URLRewriteFilter 版本 4.0.3 http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/4.0/index.html

【问题讨论】:

  • “我在本地 Windows Vista 机器上使用 Coldfusion 10 和本地内置网络服务器。” - 内置 CF 网络服务器 (Coyote),或内置Windows 网络服务器 (IIS)?

标签: tomcat coldfusion url-rewriting tuckey-urlrewrite-filter fw1


【解决方案1】:

> “我在 FW/1 设置中将 generateSES 设置为 true 并将 SESOmitIndex 设置为 true”

这两个设置无关紧要——它们只影响 buildUrl 方法的行为。
(虽然知道 path_info 的存在将打开“generateSES”标志该请求,即使您在固件设置中明确禁用它。)


如果您使用的是 URL 过滤器,则无需担心通过 path_info 并且仅重写为 query_string 可能更简单 - 同样,无论上述设置如何,都会使用/处理两者。

作为第一步,只需尝试一下,看看你会得到什么:

<rule>
    <from>^/(?!index\.cfm|favicon\.ico|list|of|folders)(.*)</from>
    <to last="true">/index.cfm?action=$1</to>
</rule>

您可能会注意到(?!..) 那里的负面前瞻性 - 它可以防止实际文件和目录被错误地重定向 - 如果您有任何其他根级文件添加它们,以及任何顶部 -包含您的图像/样式表/等的级别文件夹,使用 | 作为分隔符。

【讨论】:

  • 我很确定 FW/1 设置与我的问题无关,但想确认一下。为了回答您的第一个问题,我使用的是 CF 网络服务器,但将其重写为查询字符串效果更好。谢谢!
猜你喜欢
  • 1970-01-01
  • 2015-04-20
  • 2012-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多