URLRewriteFilter和FW1

时间:2012-08-27 12:47:19

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

我正在使用Framework One(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

1 个答案:

答案 0 :(得分:1)

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

这两个设置无关 - 它们只影响buildUrl方法的行为 (虽然知道path_info的存在会为该请求切换“generateSES”标志,即使您在FW设置中明确禁用它也可能有用。)


如果您正在使用URL过滤器,则无需担心通过path_info进行操作,只需重写一个query_string可能更简单 - 无论上述设置如何,都会使用/处理它们。

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

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

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