使用jQuery,有没有办法让每个http://www.mywebsite.com/page/成为访客的http://www.mywebsite.com/#page,并确保Facebook URL Linter(http://developers.facebook.com/tools/lint)仍然可以阅读http://www.mywebsite.com/page/中的标签吗?
答案 0 :(得分:0)
我不确定我完全理解你的问题。客户端库无法更改URL的路径部分,而不会导致浏览器从服务器获取不同的页面。
因此,如果用户转到http://www.mywebsite.com/page/,那么您可以使用客户端javascript将用户重定向到http://www.mywebsite.com/#page/,但这会导致浏览器加载页面http://www.mywebsite.com/然后尝试在该页面中找到#page片段。如果您希望浏览器重新加载http://www.mywebsite.com/#page/,那确实会发生什么。
FB不会在你的页面上运行javascript,所以如果FB转到http://www.mywebsite.com/page/,那就是它会看到的内容(它不会像常规浏览器那样被重定向)。
如果您想使用javascript进行强制重定向,可以将此代码放入页面中:
var path = window.location.pathname;
if (path.search(/^\/page\/?$/) >= 0) {
window.location.replace("http://www.mywebsite.com/#page/");
}
此代码测试以查看网页网址上的路径名是/page
还是/page/
,如果是,则执行重定向。
答案 1 :(得分:0)
<script>
$(window).load(function(){
var pieces = location.href.split('/');
if (pieces[3].indexOf('#!') !== 0) {
if (location.href.indexOf('#!') != -1) {
pieces = location.href.replace('#!','').split('/');
}
pieces[3] = '#!/'+pieces[3];
location.href = pieces.join('/');
}
});
</script>