我在全新的Apache @ Debian#squeeze上设置了一个较旧的Rails 2项目。项目本身可以是单个寻呼机,使用链接向上和向下滚动页面。我的链接看起来像这样:
http://mydomain.com/en/#home
只要JavaScript拦截click事件并只是滚动到预期的部分,这些链接就可以正常工作。如果用户离开单个页面并打开一个不能通过JavaScript跟踪这些链接(仍然相同)的页面,我只会收到:
Forbidden
You don't have permission to access /en/ on this server.
如果我将链接更改为:
http://mydomain.com/en#home
一切正常并且符合预期。但我不想改变我的链接结构。它已经在旧的Debian5盒子上运行良好。
我希望这是一个Apache2配置问题,但在网络中找不到任何有用的东西。
期待任何一种启蒙。 谢谢 菲利克斯
答案 0 :(得分:1)
我不知道你是如何或在哪里使用与此问题相关的javascript,但是让我告诉你。
标签#
之后的所有内容都 从不 传递到服务器。它的HTTP标准化,它只是没有传递给服务器。
它只打算导航到网页中的锚点,今天用于许多新技术,包括但不限于xss脚本,javascript钩子等
有可能禁止使用onclick事件加载链接,而某些javascript会执行某些操作,但如果http://mydomain.com/en/#home
不起作用,则您无法在此页http://mydomain.com/en/
上结束。
但是要解决您的问题,您可能需要调整您的apache重写规则(或者根本不启用mod_rewrite?)以捕获带有斜杠的链接。
链接http://mydomain.com/en/
http://mydomain.com/en
有所不同, 可以 提供完全不同的页面。
我 强烈 建议不要在这里弄得一团糟,并从一个到另一个进行严格的永久重定向。您选择哪种主要用途取决于您。
我更喜欢尾部斜杠,也可以为它提供参数,但是它们可以很容易地被无效并被一些人取代以暗示相反的情况。如果你在这里搜索尾随斜杠,你应该找到很多讨论。
要解决您的问题,请尝试找到相应的RewriteRule
,复制它并使用尾部斜杠再次添加它。查看它是否有效并在没有斜线斜杠的情况下重定向到URL。
您也可以编辑答案并发布服务器配置以获取帮助。