Dot-Htaccess
用 htaccess 重寫 URL 編碼的雜湊字元
我有一個使用雜湊 (#) 訪問不同頁面的單頁網站。
問題是一些 PDF 查看器破壞了我對雜湊字元進行編碼的連結,將其替換
#
為%23
,例如鍊接my.app.com/#product/22
變為my.app.com/%23product/22
.我正在嘗試使用重寫 URL 的 htaccess 規則來糾正此問題:
RewriteEngine On RewriteRule ^(.*)%23(.*)$ /$1#$2 [L,R=301,NE]
但它似乎不起作用,我該怎麼辦?
該
RewriteRule
模式與 %-decoded URL-path 匹配。因此,如果請求的 URL 包含%23
(URL 編碼#
),那麼您需要匹配模式#
中的文字。否則,您的重定向似乎沒問題。RewriteRule
例如:
RewriteRule ^(.*)#(.*)$ /$1#$2 [L,R=301,NE]
NE
此處需要( ) 標誌,noescape
以防止替換#
中的 URL 被重定向響應中的 URL 編碼。測試前清除瀏覽器記憶體。並使用 302(臨時)重定向進行測試以避免記憶體問題。