2015-11-05 57 views
0

我有http://domain.com/frame/1234sdfs但我想將其更改爲http://domain.com/#/frame/1234sdfshtaccess的重定向動態URL到一個與hashbang

我使用試驗和錯誤的時刻和與我的.htaccess以下一事無成

RedirectMatch 301 ^/frame/([^/]*)$ /#/frame/$1

有人可以把我放在正確的方向嗎?我一直在使用http://htaccess.madewithlove.be/嘗試按預期得到輸出URL,但無法弄清楚。

+0

它不起作用?根本沒有處理重定向(可能是Web服務器配置問題),或者只是這種重定向不起作用。你爲什麼要用'#'重定向到URL?這個字符在URL中有非常特殊的含義 - 通常意味着只能在客戶端瀏覽器中理解,而不在服務器端理解。所以除非你有特殊的理由來使用這個角色,否則我會提出警告。 –

+0

@MikeBrant我最近在Google Compute Engine上設置了一個AngularJS網站。我需要任何以前調用'/ frame/{uniqueID}'來轉發以獲得hashbang。 – ngplayground

+0

您的規則是正確的,應該從您的網站根.htaccess或Apache配置 – anubhava

回答

0

您應該使用mod_rewrite,以便您可以使用NE標誌。它可能正在使用mod_alias轉換爲%23。您需要在這裏使用此代碼從字面上發送

RewriteEngine On 
RewriteRule ^frame/([^/]+)/?$ /#/frame/$1 [NE,L,R=301] 

省略[NE]將導致#被轉化成它的十六進制編碼 當量,23%,那麼這將導致在404未找到錯誤 條件。

https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_ne

注:確保的.htaccess是允許的,mod_rewrite的啓用。