Apache - 是否可以根據片段(主題標籤)重寫 url?

Apache - 是否可以根據片段(主題標籤)重寫 url?

使用 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] 進行重定向,這本來可以很好。

但參考。StackOverFlow 上的這篇文章

我知道主題標籤是一個片段標識符,主題標籤後面的字串無法使用 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 一樣,它在瀏覽器視窗中運行。

相關內容