【问题标题】:Apache hashbang url problemsApache hashbang url 问题
【发布时间】:2011-07-17 14:59:38
【问题描述】:

我在全新的 Apache@Debian#squeeze 上建立了一个旧的 Rails 2 项目。项目本身可以是一个单独的寻呼机,使用链接来上下滚动页面。我的链接是这样的:

http://mydomain.com/en/#home

只要 JavaScript 拦截点击事件并简单地滚动到预期的部分,这些链接就可以正常工作。如果用户离开单个页面并打开无法通过 JavaScript 跟踪这些链接(仍然相同)的页面,我只会收到:

Forbidden

You don't have permission to access /en/ on this server.

如果我将链接更改为:

http://mydomain.com/en#home

一切正常且符合预期。但我不想改变我的链接结构。它已经在较旧的 Debian5 机器上运行良好。

我认为这是一个 Apache2 配置问题,但在网上找不到任何有用的东西。

期待任何形式的启蒙。 谢谢 费利克斯

【问题讨论】:

  • 问题不是片段而是路径/en/。片段甚至不会传输到服务器。

标签: apache2


【解决方案1】:

我不知道您如何或在哪里使用与此问题相关的 javascript,但让我告诉您。

主题标签 # 之后的所有内容从不传递到服务器。它的 HTTP 标准化,只是没有传递给服务器。

它仅用于导航到网页内的锚点,如今用于许多新技术,包括但不限于 xss 脚本、javascript 钩子等

有可能通过 onclick 事件禁止加载链接,而某些 javascript 会执行某些操作,但如果 http://mydomain.com/en/ 不起作用,则您不可能最终进入此页面 http://mydomain.com/en/#home

但是,要解决您的问题,您可能必须调整您的 apache 重写规则(或完全启用 mod_rewrite?)以捕获带有斜杠的链接。

链接 http://mydomain.com/en/ http://mydomain.com/en 有所不同,可以提供完全不同的页面。

我会强烈建议不要在这里弄得一团糟,并从一个到另一个进行严格的永久重定向。您选择哪种主要用途取决于您。

我更喜欢尾部斜杠,也可以为此提供参数,但它们可以很容易地无效并被一些人替换以提出相反的建议。如果您在此处搜索斜杠,您应该会找到很多关于此的讨论。

解决您的问题,请尝试找到相应的RewriteRule,将其复制并再次添加一次,并带有斜杠。查看它是否有效并重定向到不带斜杠的 url。

您也可以编辑您的答案并发布您的服务器配置以获得帮助。

【讨论】:

    猜你喜欢
    • 2014-01-19
    • 2012-11-26
    • 2011-01-15
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 2012-07-07
    相关资源
    最近更新 更多