7

我刚刚安装了 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”的文件夹名称?还是这些现在保留的文件夹名称?是否有解决方法可以为特定站点禁用此功能,以便我可以使用这些文件夹名称?

4

1 回答 1

14

在 Adob​​e 论坛上看到这个应该回答你的问题:

您无法访问 /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>

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

于 2016-10-06T19:43:24.990 回答