2011-07-17 113 views
0

我在一個全新的Apache @ Debian#squeeze上建立了一箇舊的Rails 2項目。該項目本身可以是一個單一的傳呼機,使用鏈接向上和向下滾動頁面。我的鏈接看起來像:Apache hashbang url問題

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

+0

問題不是片段,而是路徑'/ en /'。片段甚至不會傳輸到服務器。 – Gumbo

回答

1

我不知道如何或在哪裏工作與JavaScript有關的問題,但讓我告訴你這一點。包括hashtag #

一切都是從未傳遞給服務器。它的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,複製它,並添加一個附加斜槓。看看它是否有效,並重定向到沒有trailign斜槓的網址。

您也可以編輯您的答案併發布您的服務器配置以獲得幫助。