我有一個網站,用戶在其中選擇一系列字母和數字,並將其帶到基於此的新頁面。哈希碎片與服務器端代碼衝突
因此,它可能帶他們去/cds/C_1_3_A_2
沒有實際C_1_3_A_2
頁面在cds
目錄中,我有一個重寫規則:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^cds/(.*) /cds/index.html [L]
所以如果請求的文件不存在,它會被重寫爲index.html
,其中一個php腳本獲取URL的最後一個組成部分(C_1_3_A_2
),並加載相關內容,如果URL的最後一個組件是/cds
,那麼PHP腳本會重定向到/cds/C_1_1_A_1
但是我想添加AJAX使其更平滑,這意味着我需要添加對散列碎片的支持,因爲舊版瀏覽器不支持history.pushState。
因此,如果用戶去自行/cds/#C_1_3_A_2
,它應該是一樣/cds/C_1_3_A_2
但作爲片段不被髮送到服務器,用戶最終成爲/cds/C_1_1_A_1#C_1_3_A_2
,並得到相關的內容到C_1_1_A_1
,而不是C_1_3_A_2
,因爲他們打算。
由於PHP是服務器端,它在Javascript可以處理片段之前執行,並且我不希望用戶通過PHP腳本重定向,然後通過javascript返回。
那麼如何添加對散列碎片的支持呢?其他網站如何處理這個問題?