0

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/のタグを読み取ることができますか?

4

2 に答える 2

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/");
}

このコードは、ページのURLのパス名がであるかどうかをテストし、/pageそう/page/である場合はリダイレクトを実行します。

于 2011-08-01T05:01:53.443 に答える
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>
于 2011-08-07T09:43:18.703 に答える