
使用 Apache/2.4.54 (Win64)
我被要求從舊網域重寫為新網域,如下所示
- 從
https://oldtest.mydomain.com/company/customerpage/#/customer/<getThisNumber>/something
- 到
https://newtest.mydomain.com/company/something/customer/<getThisNumber>
使用正規表示式獲取號碼並將其傳遞給新號碼,然後使用 [L,R=301] 進行重定向,這本來可以很好。
我知道主題標籤是一個片段標識符,主題標籤後面的字串無法使用 mod_rewrite 處理,但我希望主題標籤本身會顯示出來。所以我嘗試過像這樣匹配的規則
所以我嘗試過的是(片段)
<LocationMatch "^\/company\/customerPage\/">
LogLevel alert rewrite:trace3
RewriteCond %{QUERY_STRING} ([0-9]*)\/something$
RewriteRule ^(.*)$ "https://newtest.mydomain.com/company/something/customer/$1" [L,R=301]
這不起作用,問題是我的程式碼中是否有一個小問題,或者我也意識到這可能存在不可行的風險......但希望不是。
答案1
https://www.w3.org/Addressing/URL/4_URI_Recommentations.html
哈希(#、、
#
ASCII 23 十六進位)字元被保留作為分隔符,用於將物件的 URI 與片段標識符分開。
那裡暗示的意思是
主題
#
標籤不是 URI 的一部分。並且僅將 URI 傳送到 Web 伺服器。
雜湊和片段標識符不會在請求中傳送到 Web 伺服器。
伺服器端根本沒有任何東西可供 Apache 和/或 mod_rewrite 處理。
您需要透過運行客戶端的東西來解決這個問題;就像 javascript 一樣,它在瀏覽器視窗中運行。