ColdFusion 2016:你的网络根目录中有一个名为'api'或'rest'的文件夹吗?

Dav*_*e L 6 iis coldfusion cfml coldfusion-2016

我刚刚安装了ColdFusion 2016(从CF10升级),我注意到每当我尝试访问我的webroot中名为'api'的文件夹时,我都会收到内部500错误.

例如:www.mysite.com/api/

我假设这与新的ColdFusion API REST服务有关,所以我创建了另一个名为'rest'的目录,执行了相同的测试(www.mysite.com/rest/),并收到了另外500个错误.

查看IIS错误截图: 在此输入图像描述

奇怪的是,我没有使用ColdFusion REST服务,我没有在ColdFusion Administrator中启用它.

我的问题:

您是否允许在您的Web根目录中拥有名为"api"或"rest"的文件夹名称?或者这些是现在保留的文件夹名称?是否有解决方法来禁用特定站点的此功能,以便我可以使用这些文件夹名称?

小智 12

在Adobe论坛上看到这个,它应该回答你的问题:

你无法访问/ api /或/ rest /的原因是因为这些文件夹有一个cf servlet-mapping.

您可以转到cfinstall/cfusion/wwwroot/WEB-INF/web.xml来删除映射.搜索api servlet-mapping并将其注释掉.

除了使用IIS重写将流量重定向到另一个文件夹之外,似乎没有办法为特定站点执行此操作.这样的东西应该工作(重定向来自/ api /到/ api2 /的流量):

<rule name="Redirect" stopProcessing="true">
     <match url="^api$|^api/(.*)" />
     <action type="Rewrite" url="api2/{R:1}" appendQueryString="true" />
</rule>
Run Code Online (Sandbox Code Playgroud)

如果有人知道如何在不修改web.config的情况下为特定网站禁用此功能,请随时分享您的想法.