我试图用mod_rewrite写一个重定向规则,但不知何故它永远不会起作用,所以我一定做错了什么:(

下面是重写规则,因为我在这个之上的另一个块,来自WordPress,我尝试将这一个和下面的内容组合成1个重写规则,看看是否可能是问题,但这也没有解决问题 . 无论如何,这就是我所拥有的:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} =facebookexternalhit\/[0-9]+(\.[0-9]+)*
RewriteRule ^/hash/([A-Za-z0-9-]+)/?$ \#$1 [R]
</IfModule>

RewriteCond部分检查请求是否来自Facebook(在我测试RewriteRule期间保持不计)我认为's fine (honestly it doesn'm真的很重要,我可能会一起忽略这个条件,只是在这里发布了结果证明是无效的)

RewriteRule部分应该重定向所有包含 /hash/ 的url包含 # 的url,所以这意味着http://www.example.com/hash/home应该 redirect the browserhttp://www.example.com#home

我似乎在运行,因此这个问题,有没有人看到代码有什么问题?问题是1 .htaccess文件中定义了多个块吗?

最后,这甚至是一个有效的解决方案吗?实际的根本问题是:我有一个网站使用哈希标签导航到某些页面,在网站上有一些共享按钮,共享用户正在查看的当前网址,Twitter LinkedIn和谷歌都处理共享网址(包含哈希标记)没有问题,但Facebook从共享者的网址中剥离哈希标记(如果将其作为#hash-tag发送,如果我尝试将其作为网址编码发送%23井签,Facebook报告404在网址上,所以我需要为Facebook制作一个解决方法,我可以在没有带有Facebook的哈希标记的情况下共享网址,然后当访问者或Facebook共享api'来时,将这些网址重定向到网站实际理解的内容敲门” .

任何帮助高度赞赏!