3

wordpressでハッシュチェンジを使用してサイトを構築していますが、すべて正常に機能しています。single.php テンプレート ファイルを div にロードするだけです。

問題は、私がまだ単一の URL (http://www.mydomain.com/my-single-post) にアクセスできることです。ヘッドタグとスタイルタグが付いていないので、人々にそこに行ってほしくありません。また、href 属性を使用してコンテンツを div にロードするため、Google は直接リンクを取得しました。

だから私の質問は:

誰かがリンクをクリックした場合、フォーラムでhttp://www.mydomain.com/my-single-postと言うと、すぐにhttp://www.mydomain.com/#my-single-にリダイレクトできますか?ポスト? .htaccess と関係があることを調査しましたが、ページ名の前にハッシュを付けたくないページもあります。

編集

小さな更新があります。このコードが URL からハッシュ タグを削除し、非ハッシュ URL にリダイレクトする場合、このコードを逆に配置する方法は?

var current_hash = location.hash;
        current_hash = current_hash.replace(/#/,'');
    if(current_hash.length>1){
        // we have something after the #. redirect as if the # wasn't there.
        window.location.href=current_hash;
    }
4

3 に答える 3

3

OK、いくつかの試行錯誤の後、私は自分でそれを管理しました!

これは私が求めていたものです:

  // If there's a hash in the URL, do nothing
  if(window.location.hash) {

  } else {
  // If there isn't a '#' sign in the URL, add one, and redirect to the hash URL.
    var path = window.location.pathname.split("/")[1];
     window.location.replace('http://' + top.location.host + '#' + path);
  }

おそらくこれを行う他の方法もあります。ハッシュがあるかどうかを確認するためだけに、if / else ステートメントは必要ありません。

于 2012-10-23T15:00:03.523 に答える
0

私は Wordpress にあまり詳しくありませんが、Wordpress には投稿用の URL 形式を設定するためのツールが組み込まれているのではないでしょうか? 私が最初に探す場所はそこにあり、URL のハッシュ記号を使用してニーズに合った形式を設定します。

別の方法として、独自の htaccess を維持することもできますが、ルートにハッシュ記号付きの URL にリダイレクトする必要があるページとそうでないページがあるため、ページごとに手動でルールを作成する必要があります。残念ながら、長期的に維持するのは少し面倒です。

これは、Wordpress が舞台裏で行っていることであり、はるかに便利だと思いますが、よくわかりません。

于 2012-10-13T09:39:09.700 に答える
-1

リクエストが AJAX でない場合は、PHP ヘッダーを使用して my-single-post ページでリダイレクトできます。get リクエストで my-single-post に AJAX 変数を渡すこともできます

<?php

if($_GET["ajaxVar"]!=1){
header("Location: http://www.mydomain.com/#my-single-post");
}
?>
于 2012-10-13T09:37:55.410 に答える