2012-03-31 78 views
0

我正在使用的项目是使用pushState,但由于Internet Explorer无法正确处理,所以在更改URL时使用了shebang。有没有设置.htaccess来允许网址中的shebang,但删除它并重定向它。截至目前,如果我要转到http://www.mydomain.com/#!/whatever.php它只显示我的索引页。但我想它做的是,如果你转到http://www.mydomain.com/#!/whatever.php,重定向到http://www.mydomain.com/whatever.php如何设置.htaccess以允许在网址中使用shebang

+0

花费一点时间用Wireshark;客户端_never_发送'#'或任何后面的内容到服务器。 – sarnold 2012-03-31 23:52:39

回答

0

好的,所以我想出了问题的答案。所以javascript是唯一可以确定的方法,因为在URL中使用shebang它将引导您访问域的索引页,但仍然保持URL相同。所以我刚刚在我的页面顶部添加了以下内容。

$(document).ready(function(){ 
    var loc = self.document.location; 
    if(loc.hash){ 
     var href = loc.hash.split("#!/"); 
     window.location = loc.protocol +'//'+ loc.host +'/'+href[1]; 
    } 
}); 
0

不,使用.htaccess是不可能的,因为#后一切都没有被发送到服务器的。你将不得不使用JavaScript来做重定向。

+0

我试过使用javascript,但是当你在路径中使用'shebang'标签时,javascript不会检测到任何东西。如果尝试'alert(window.location.pathname);'并且它只是在尝试'http://www.mydomain.com/#!/ index.php'时显示'/'作为路径 – Bobby 2012-04-01 18:32:07

+0

使用:'alert( window.location.hash);'获得'#'(哈希)部分 – stewe 2012-04-01 19:25:15