Apache mod_rewrite规则,用于将URL从一个目录重定向到一个带有hashtag的目录

时间:2014-11-26 14:14:25

标签: php facebook .htaccess mod-rewrite

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

下面是重写规则,因为我已经在.htaccess文件中定义了它,应该注意的是,在这个文件之上还有另一个 块,它来自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 期间到目前为止保持不计)我不确定这是否真的工作,但我在多个StackOverflow问题中遇到它,所以我假设这很好(老实说它并不重要,我可能会一起忽略这个条件,只是发布在这里,以防它被证明是无效的)

RewriteRule 部分应重定向包含 / hash / 的所有网址,其中包含的网址,所以这意味着{{3} 重定向浏览器也应http://www.example.com/hash/home

我已尝试过上述不同迭代的加载,但无论我尝试什么,它似乎都不起作用,因此这个问题,是否有人看到代码有什么问题?在.htaccess文件中定义了多个 块会是一个问题吗?

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

任何帮助都非常感谢!

0 个答案:

没有答案