代码之家  ›  专栏  ›  技术社区  ›  J.T.

我可以有'友好'的网址没有网址重写器在IIS的?

  •  1
  • J.T.  · 技术社区  · 15 年前

    如果没有像ISAPI\u Rewrite这样的url重写器,是否可以实现以下功能:

    我想要一个用户浏览到 http://www.jjj.com/directory 哪里 /directory not-found.cfm .

    index.cfm http://www.jjj.com/directory/index.cfm .

    url将显示得很好,页面也会加载,即使目录或 不存在。但是我想不能 索引.cfm 在url中。

    1. 页面请求到 http://www.jjj.com/directory

    2. 不是-找到.cfm 作为默认值 404 错误处理程序。

    3. 未找到条带 CGI.query_string 和用途 cfswitches onMissingTemplate ?

    4. 页面请求在URL中从不改变,并且页面以透明的方式加载给用户 200 OK 地位

    5. http://www.jjj.com/directory/index.cfm 301 重定向到 http://www.jjj.com/directory

    当前

    1. 页面请求到 http://www.jjj.com/directory

    2. 不是-找到.cfm 作为默认值 错误处理程序。

    3. CGI.query\u字符串 将用户引导到适当的控制器功能。

    4. 页面请求更改为 http://www.jjj.com/directory/index.cfm 用一个 200行 地位

    3 回复  |  直到 15 年前
        1
  •  3
  •   Adam Tuttle    15 年前

    你在问怎么切东西,却告诉我们不准用刀或类似的东西。

    这是我唯一聪明的想法 onMissingTemplate() .

    GET /directory/
    -&大于404.cfm
    -&燃气轮机; <cfinclude template="#cgi.script_name#/special.cfm" />
    ->火灾 onMissingTemplate() 你忽略了特殊.cfm位,然后使用请求路径的其余部分来确定要连接到哪个控制器。

    为什么? ISAPI重写不是一个选项,那么我们也许可以进一步提供帮助。

        2
  •  1
  •   Aaron Greenlee    15 年前

    然后,你可以分析cgi.query\u字符串'并使用cfinclude以任何方式路由应用程序,以便只包含正确的'模板.cfm,或者,您可以重新格式化框架所期望的输入,或者使用类似的项目 http://coldcourse.riaforge.org/ .

    只需注意一点,IIS会给你一个类似这样的URL:'404; http://yoursite.com/the/url/you/wanted/to/route '.

        3
  •  1
  •   Wyatt Barnett    15 年前

    IIS7是否在批准的软件列表中?这可以让你的原生网址重写和侧步整个问题。

    另一种方法是找到一个ISAPI url重写器,比如说,在MIT许可下。创建自己的副本。然后让他们将其作为软件包的一部分安装。