wordpress3.1.2にて、ブログを作成して4年目になります。

現在、テーマは、Platform1.2.1を使用しており、いろいろカスタマイズしています。
先日、パーマリンクを変更しました。
/archives/123を、/%postname%/にしました。
URL変更に伴い、下記プラグインにて、リダイレクトさせる予定でしたが、トップページに飛んでしまいます。
プラグイン「Permalink Redirect」
ほかのプラグイン「Redirection」も試してみたのですがうまくいきません。
現在、プラグインは、有効にしていませんが、過去のURLは、自動的にトップページに飛ぶようです。
.htaccessをいじるしか方法はないのでしょうか。
変更するとしたらどうすればよいのでしょうか。
私のブログの.htaccessは下記です。
AddHandler php5-script .php

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

他にも、いろいろいじっているのですが、わかりません。
アクセス数も半減しました。
何卒、よろしく御教授願います。

サイトアドレス
http://architectural-site.jp

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2011/06/01 20:17:34
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:rouge_2008 No.1

回答回数595ベストアンサー獲得回数351

ポイント200pt

「Permalink Redirect」の設定は済ませたでしょうか?

http://coliss.com/articles/blog/wordpress/plugin/wordpress-plugin-permalink-edirect.html

1.ダッシュボードの「設定」→「Permalink Redirect」

2.「Old Permalink Structures:」に「/archives/%post_id%」と入力(※「」は不要です。)

3.「Current permalink structure: /%postname%/」と表示されているのを確認

4.「Update Options」をクリックして完了です。


ちなみに「/%postname%/」だけというのは、なるべく避けて次のようにする方が良いと思います。

例:/post/%category%/%postname%/

http://wpdocs.sourceforge.jp/Using_Permalinks

パフォーマンスの観点から、パーマリンク構造がカテゴリ名、タグ名、著者名、投稿タイトルフィールドから始まるのは好ましくないといえます。これらはテキストフィールドなので、パーマリンク構造の先頭に用いると、WordPress が投稿とページ (ページは常にページスラッグを URL に含みます) を区別するのに時間がかかり、代償として、WordPress が余計な情報をデータベースを蓄えることになります (多くのページがあるサイトは大変でしょう)。したがって、/%year%/%post_name%/ や、さらには /posts/%post_name/ のように、少なくとも 2 つのパスセグメントを含めるのがベストでしょう。(パフォーマンスの観点から /%post_id%/%post_name%/ を推奨する人もいますし、この形式はユーザーと URL のインタラクションの多くの文脈で親切でないと批判する人もいます。)

パフォーマンス上の理由で %postname% で始まるパーマリンクは非推奨です。

※他、同じ理由で「%category%」「%tag%」「%author%」等で始まるパーマリンクが非推奨とされています。(上記参照)


それから、今回のケースの場合はプラグインを使用しなくても可能です。

.htaccessに以下の記述を追加します。

RewriteRule ^archives/(\d+)/?$ /index.php?p=$1 [L]

全体では以下のようになります。

AddHandler php5-script .php

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^archives/(\d+)/?$ /index.php?p=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]


# END WordPress
  • id:rouge_2008
    パーマリンクを「/%post_name/」とした場合、「http://ドメイン名/記事タイトル/10/」のように記事のIDが残ってしまいます。
    パフォーマンスの事もありますので、「/post/%post_name/」など2セグメント以上で設定してみてください。
    「/%post_name/」とだけしたい場合は、.htaccessによる方法をお試しください。
  • id:Ninaaaa
    rouge_2008さん、コメントありがとうございます。
    無事、リダイレクトしました。
    Permalink Redirectは、何度も設定したのでしたが、だめでした。
    結局、.htaccessを、書き足しました。
    RewriteRule ^archives/(\d+)/?$ /index.php?p=$1 [L]
    また、パーマリンクも下記のように直しました。
    /%year%/%post_name%/
    本当にありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません