代码之家  ›  专栏  ›  技术社区  ›  Leo

特定主机上用户控制器的区分大小写能力

  •  0
  • Leo  · 技术社区  · 14 年前

    我们通常使用两种不同的托管服务。一方面,所有东西都能工作,就像在我的本地dev服务器上一样。但是,在另一台服务器上,我遇到了这个问题:

    我无法像这样访问用户控制器: http://www.example.com/users/login

    但我喜欢这样: http://www.example.com/Users/login

    **注意大写的“用户”**

    如果我将应用程序替换到子文件夹中,一切都可以正常工作(包括大小写)。

    主机公司已经看过了,他们看不到问题所在,他们向我保证用户不是保留字。

    你可能会说这不是问题,只要使用有效的版本。不幸的是,它会导致下游的问题,即cake-core开始生成URL本身。

    有人看到这个问题或知道解决方法吗?

    [这只发生在用户控制器上-所有其他人都按预期工作]

    2 回复  |  直到 14 年前
        1
  •  0
  •   Travis Leleu    14 年前

    我不太清楚你的代码是什么导致了这个问题。你在routes.php文件中有什么特别的东西吗?如果您为用户定义了一个特定的路由,那么可能就是它。

    但是,您可以快速修复——在UsersController(或者AppController,如果您希望确保此行为不会在其他地方弹出)中,只需在beforefilter()方法中添加一行,以大写/不大写(以更合适的为准)控制器参数。

    [编辑]-抱歉,没有完成第一段。它仍然可以是路由文件,即使它在一个服务器上工作,而不是在另一个服务器上工作,因为工作服务器可能使用不区分大小写的Apache模块来规范化所有URL。这就是为什么让您的登台和开发设置与生产设置完全相同的原因。

        2
  •  0
  •   Leo    14 年前

    尽管宿主支持否认“用户”或“用户”或“用户”一词以任何方式被保留,但它似乎是:

    “我们已删除用户/重定向”

    问题解决了。