我在一个全新的Apache@Debian#squeeze上建立了一个较旧的Rails2项目。项目本身可以是一个单独的页面,使用链接来上下滚动页面。我的链接是这样的:
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配置问题,但在网络上找不到任何有用的东西。
期待着任何形式的启蒙。Thx Felix
发布于 2011-07-17 23:13:26
我不知道您如何或在哪里使用与此问题相关的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。
您也可以编辑您的答案并发布您的服务器配置以获取相关帮助。
https://stackoverflow.com/questions/6724647
复制相似问题