2012-07-12 71 views
1

目前我有這樣的:htaccess的重定向到正確的錨定,但不會重命名

RewriteRule ^Skills$ http://mypage/resume.php#Skills [NE,NC,L] 

時,我有哪些URL重定向正確的錨鏈接:http://mypage/Skills. 然而,在瀏覽器的URL顯示實際錨鏈接:http://mysite/resume.php#Skills 而不是告訴我http://mysite.com/Skills

如何重定向和重寫url?

回答

0

它重定向瀏覽器,因爲您的RewriteRule目標前有http://mypage。這會自動告訴你想要302重定向的重寫引擎,這樣瀏覽器的地址欄就會被改變。然而,這裏的問題是,如果你刪除它,以至於它只是/resume.php#Skills,它會在內部重寫請求(保留瀏覽器地址欄中的內容),但片段(#Skills)將毫無用處。

在客戶端使用片段來告訴它以某種方式處理它請求的內容,通常是將頁面分頁到存在命名錨的地方。如果瀏覽器沒有看到#Skills,它將不會翻頁到名爲anchor的「技能」。如果您沒有重定向,瀏覽器將無法看到該片段,因爲它正在由服務器進行內部處理,並且服務器將忽略該片段。

可能有某種javascript解決方案告訴瀏覽器它剛剛加載的內容http://mypage/resume.php需要分頁到某個指定的錨點。它可能能夠通過查看瀏覽器的地址欄,看到它正在請求/Skills,並onload()它頁面到Skills錨點。