2

Codeigniter を使用して Web サイトを開発しています。

URL を SEO フレンドリー バージョンにリダイレクトしたいと考えています。たとえば。
私はURLを持っています

A.http://www.example.com/post/[post-id]/

この URL を、それ自体の SEO フレンドリー バージョンにリダイレクトしたい

B.http://www.example.com/post/[post-id]/[post-title]

stackoverflow が使用し、A URL を B URL にリダイレクトするのと同じように。

http://stackoverflow.com/questions/[question-id]/[question-title]

302 リダイレクトを使用している場合は
どこかで読むまで、Codeigniter で 302 リダイレクトを使用していました。 その後、Google はあなたをスパマーとして扱うかもしれませんが、Stackoverflow の URL パターンを見たときに、B バージョンの URL を使用する方がはるかに優れていると思います。

私の質問は次のとおり
です。 1.どのリダイレクトスタックオーバーフローが使用されていますか?
2. [post-title] の Slug をデータベースに保存するか、url_title()関数で手動で計算する方がよいでしょうか。

4

2 に答える 2

2

302 は一時的なリダイレクトを意味します。その結果、検索エンジンは引き続き元の URL をインデックスに登録します。

301 は永続的なリダイレクトを意味します。これにより、検索エンジンはインデックス データを新しい URL に転送します。

302 はスパムではありませんが、間違った状況で使用すると、自分自身を助けることはできません。

あなたの場合、URL を永久に移動するので、301 が適切です。

于 2012-11-23T03:08:26.873 に答える
0

投稿の SEO に適した URL の投稿コントローラーにプライベート関数を作成します。

private function _redirect($url) {    // $url = http://www.example.com/post/[post-id]/
  redirect($url . $this->post_title); // becomes http://www.example.com/post/[post-id]/[post-title]
  return;
}

リダイレクトの前に、post_title メンバー変数を設定する必要があります。redirect() 関数を呼び出す場所はどこでも、それをプライベート関数 _redirect() に置き換えれば、準備完了です。

デフォルトでは 302 リダイレクトです。301 リダイレクトを行うには、redirect() 関数にパラメーターを追加するだけです。例えば

// with 301 redirect
redirect($url . $this->post_title, 'location', 301);

注: この関数を機能させるには、サーバー ヘッダーを使用するため、ブラウザーに何かを出力する前に使用する必要があります。

于 2012-11-22T15:31:40.153 に答える