Am un site web cu o singură pagină care folosește hash (#) pentru a accesa diferite pagini.
Problema este că unii vizualizatori PDF rup legăturile mele care codifică caracterul hash, înlocuind #
cu % 23
, deci, de exemplu, linkul my.app.com/#product/ 22
devine my.app.com/%23product/22
.
Încerc să corectez acest lucru folosind o regulă htaccess care rescrie adresa URL:
RewriteEngine On
RewriteRule ^(.*)%23(.*)$ /$1#$2 [L,R=301,NE]
dar nu pare să funcționeze, ce pot face?
RewriteRule
] шаблон совпадает с%-декодированным URL-путем. Итак, если запрошенный URL-адрес содержит % 23
(URL-адрес в кодировке #
), вам необходимо сопоставить литерал #
в RewriteRule
узор . В противном случае с вашим перенаправлением все в порядке.
Например:
RewriteRule ^(.*)#(.*)$ /$1#$2 [L,R=301,NE]
Здесь требуется флаг NE
( noescape
), чтобы предотвратить #
] в подстановке , являющейся URL-адресом, закодированным в ответе на перенаправление.
Очистите кеш браузера перед тестированием. И протестируйте с 302 (временными) перенаправлениями, чтобы избежать проблем с кешированием.
Знак # и все, что следует за ним, никогда не должны отправляться вместе с запросом.
Это только для ссылки на именованные теги