带有子系统,路线和SES的FW/1



我正在尝试使用子系统使用FW/1在ColdFusion中设置API站点。我想设置省略index.cfm的路由,并为默认路径使用/子系统/操作/项目,但是我不确定是否有办法来执行此操作。从我能找到的东西和其他问题很旧的情况下,该文档并不清楚。

现在,我的应用程序中有以下内容。cfc...

variables.framework = {
        trace = false,
        reloadApplicationOnEveryRequest = "true",
        home = "main.default",
        diComponent = "framework.ioc",
        diLocations = "/model,/controllers",
        SESOmitIndex = true
};
variables.framework.routes = [
        { "$GET/accounts:member/membercount" = "/account/member/membercount" }
];

这导致IIS发生404误差。有什么建议吗?

更新:我确实发现我需要更新IIS以包含URL重写以省略index.cfm,但是,当我尝试致电http://example.com/account/时,我仍然会得到404会员/成员

如果我将URL更改为http://example.com/account:member/membercount,我会遇到IIS错误,"潜在的危险请求。

我希望使用"/"而不是":"来调用URL,但我不确定该怎么做。似乎路线应该能够处理这一点,但是我还没有找到一条路。

这很晚,但是:

看来您正在尝试使用搜索引擎友好的URL。您需要variables.framework中的generateSES = true

,您不需要这个:

variables.framework.routes = [
    { "$GET/accounts:member/membercount" = "/account/member/membercount" }
];

,使用generateSES选项使这很明显。

,然后在根文件夹中的web.config文件中

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Rewrite for accounts">
                    <match url="^accounts/(.*)" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/accounts:{R:1}" />
                </rule>
                <rule name="RewriteUserFriendlyURL1">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.cfm/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

这告诉IIS在根文件夹中使用index.cfm文件处理所有URL(从URL省略index.cfm(。现在,您可以使用FW1路由来确定如果不明显的话将执行哪个控制器。

这也通过将/重写为:的CC_6从URL结构中删除。

相关内容

  • 没有找到相关文章

最新更新