如何允许 Rewrite_Map 中的特殊字符?
How to allow special characters in Rewrite_Map?
这是我使用的配置
RewriteEngine on
RewriteMap shortlinks txt:/var/www/html/s.overhash.net/public_html/shortlinks.txt
RewriteRule ^/(.+)$ ${shortlinks:} [R=temp,L]
我的 txt 文档看起来像这样:
9H40o https://osyrisrblx.github.io/playground/#code/HYUw7gBAggTjCGBPAPMArgWwEYhgPgAoBKAOhhABM0BjEAggB3IDcAaCatOEYAFyIC8eJiGYBqAZ258iQA
但是,在访问我的站点 (http://s.overhash.net/9H40o) 后,它将 #
替换为 %23,使 URL 成为:
https://osyrisrblx.github.io/playground/%23code/HYUw7gBAggTjCGBPAPMArgWwEYhgPgAoBKAOhhABM0BjEAggB3IDcAaCatOEYAFyIC8eJiGYBqAZ258iQA
(无效)
我将如何确保 #
保留下来?
这不是重写映射问题,而是重写规则的工作方式。
默认情况下,特殊字符将被转义。
如果您不希望这种情况发生,请在您的重写规则中使用 NE
标志:
RewriteRule ^/(.+)$ ${shortlinks:} [NE,R=temp,L]
有关 https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_ne
的更多详细信息
这是我使用的配置
RewriteEngine on
RewriteMap shortlinks txt:/var/www/html/s.overhash.net/public_html/shortlinks.txt
RewriteRule ^/(.+)$ ${shortlinks:} [R=temp,L]
我的 txt 文档看起来像这样:
9H40o https://osyrisrblx.github.io/playground/#code/HYUw7gBAggTjCGBPAPMArgWwEYhgPgAoBKAOhhABM0BjEAggB3IDcAaCatOEYAFyIC8eJiGYBqAZ258iQA
但是,在访问我的站点 (http://s.overhash.net/9H40o) 后,它将 #
替换为 %23,使 URL 成为:
https://osyrisrblx.github.io/playground/%23code/HYUw7gBAggTjCGBPAPMArgWwEYhgPgAoBKAOhhABM0BjEAggB3IDcAaCatOEYAFyIC8eJiGYBqAZ258iQA
(无效)
我将如何确保 #
保留下来?
这不是重写映射问题,而是重写规则的工作方式。 默认情况下,特殊字符将被转义。
如果您不希望这种情况发生,请在您的重写规则中使用 NE
标志:
RewriteRule ^/(.+)$ ${shortlinks:} [NE,R=temp,L]
有关 https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_ne
的更多详细信息