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

时间:2016-10-06 18:17:35

标签: iis coldfusion cfml coldfusion-2016

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

例如:www.mysite.com/api /

我认为这与新的ColdFusion API REST服务有关,因此我创建了另一个名为“rest”的目录,执行了相同的测试(www.mysite.com/rest/),并收到了另外500个错误。< / p>

请参阅IIS错误屏幕截图:enter image description here

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

我的问题:

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

1 个答案:

答案 0 :(得分:12)

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

您无法访问/ api /或/ rest /的原因是因为这些文件夹有cf servlet映射。

您可以转到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>

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