2010-10-19 157 views
2

我使用ajax在我的网站上加载页面。 每次页面加载我通过使用javascripthtaccess重定向#!在网址中

现在我想做的是,当有人通过输入来我的网站设置它通过window.loaction更改浏览器的URL

http//www.example.com/old/page/#!/new/page/ 

时间网址

http//www.example.com/old/page/#!/new/page/ 

他应该自动重定向到

http//www.example.com/new/page/ 

这也是在Facebook上发生的。

有人可以帮助我与所需的.htaccess代码实现相同。

在此先感谢

回答

2

我觉得没有什么过去在您的网址#符号是在服务器端偶可见。所以htaccess,php等都不会知道哈希值是在那里开始的。我认为,为了解决这个问题,你将不得不使用客户端重定向。

window.onload = function(){ 
    // First we use a regex to check for the #! pattern in the hash  
    if(window.location.hash.match(/\#\!/i)){ 
    // If we found a match, use substring to remove the #! and do a redirect 
    window.location = window.location.hash.substring(2); 
    } 
}; 

本示例将在页面加载时立即重定向用户。不幸的是,以这种方式进行重定向并不能帮助搜索引擎重新编制您的网站,但这只是使用基于JavaScript或基于哈希的网址的缺陷之一。

+0

我尝试使用hte以下客户端脚本 requestedURL =“”+ window.location +“”; position = requestedURL.search(“#!”);如果(位置!= -1)newpage = requestedURL.substr(position + 2); \t requestedURL =“”; \t window.location = domainame + newpage; } 但这个脚本的问题在于它每次执行ajax调用时都会执行 – 2010-10-19 20:39:13

+0

如果您可以通过javascript提示某种方式来执行相同的操作,那将是非常好的 – 2010-10-19 20:41:25

+0

添加了一个示例。它在我的Web服务器上工作,但您可能需要稍微调整以适应您的环境。 – 2010-10-20 01:53:01