使用mod_rewrite重写带有锚点链接的URL

10

我知道你不能将锚点URL重定向到另一个页面,但是是否可以将URL仅重定向到单个锚点?

因此

http://www.example.com/video/{title}

总是发送到

http://www.example.com/video.php?title={title}#player

唯一变化的是标题,锚点始终相同。我需要将其重定向到Coda幻灯片上的某个幻灯片。

2个回答

22
RewriteRule ^/video/(.*) /video.php?title=$1#player [NE,L,R=301]

NE|noescape

默认情况下,特殊字符(例如&和?)将被转换为它们的十六进制码等价形式。使用[NE]标志可以防止这种情况发生。

来源:http://httpd.apache.org/docs/current/en/rewrite/flags.html


NE-Flag对于Apache/2.4.6是未知的。httpd -V记录了以下内容:RewriteCond: unknown flag 'NE' - SWiggels

9
如果指定了NE标志(无转义),则可以在重定向规则中使用#符号。

1
谢谢Dan,似乎还需要301重定向。 - Graham
1
我不需要301,但如果您正在使用永久重定向,在浏览器中点击刷新可能会使用缓存的(转义的)重定向规则。清除缓存或尝试使用另一个浏览器。 - Mark McDonald

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接