重写URL以进行深层链接

时间:2011-10-24 23:53:04

标签: php apache .htaccess

我想要做的事情非常简单,但没有任何stackoverflow答案能够解决这个问题:

如何使用.htaccess在基本网址和请求的路由之间插入哈希标记?

http://mydomain.com/shop  

将成为

http://mydomain.com/#/shop

我想使用.htaccess,因为我觉得它比服务器端php更清晰。 我之所以这样做的原因是因为我使用的是jquery地址,它接管了页面上的链接,取代了href属性。如果散列标签没有正确放入,它就会中断。

3 个答案:

答案 0 :(得分:2)

只需将bog-standard mod_rewrite与“no-escape”(NE)选项一起使用:

RewriteRule ^shop /\#/shop [R=301,L,NE]

答案 1 :(得分:1)

The hash/number symbol (#) itself has a special significance in a URL,因此您无法将其可靠地放入网址的路径中。你可以这样做:

RewriteRule ^shop(.*) /hash/shop$1 [R=301,L]

答案 2 :(得分:0)

下面的代码有助于深层链接。如果未安装模块,您需要验证浏览器并重定向到应用商店,如果已安装,则意味着它将重定向到应用内部。

//Validate browser
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Safari') == !FALSE) {
?>
<script>
    window.location = 'deeplinkexample://';
    setTimeout(function() {
        window.location = 'https://itunes.apple.com/us/app/apple/id1145838819?l=fr&ls=1&mt=8'
    }, 250);enter code here
</script>
<?php
}