この記事ではワードプレスのパーマリンク(URL)に年月が入っているが削除したい人にその方法をわかりやすく詳しく説明する。日付削除後の転送設定と内部リンク書き換え方法も合わせて説明する。
ブログ記事のパーマリンクから日付を削除したい
まったくのネット素人だった時代に設置した別ブログでは、記事を書いた時期がわかった方が便利かもしれないと思って最初にパーマリンクに年月を含む設定にした。
だがしばらくブログを運営していくうちに、URL内の日付はデメリットでしかないと思うようになり思い切って削除することにした。
日付削除前と後のURL例
- 前:https://www.shinentai.com/2019/01/earth-is-obon-today/
- 後:https://www.shinentai.com/earth-is-obon-today/
結論を言うと変更して良かった。
変更したかったのは、URLに日付が入っているとせっかくまじめに更新した記事が古ぼけて見えてしまうという主な理由で、さらにURLが短くなるのも良い。
パーマリンクの日付削除、転送設定、内部リンク書き換えの手順
パーマリンクから日付を削除する場合、旧URL(日付あり)から新URL(日付なし)へ301リダイレクト(転送)する設定と内部リンク書き換えも同時に行わなければならない。
この記事ではFilezillaなどのFTPクライアントでサーバとファイルの送受信ができることを前提として説明する。
パーマリンクの日付削除と付随作業の手順
- サーバーから.htaccessをダウンロードする。
- ダウンロードした.htaccessに301リダイレクトの記述をする。
- ワードプレスのパーマリンクを日付なしの投稿名のみに設定する。
- 転送の記述をしておいた.htaccessをサーバにアップロード。
Search RegexBetter Search Replaceで内部リンクを書き換え。
手順は多少前後しても問題ないはず。
手順実施前の注意:本記事の内容を実施したことにより万が一不具合が起きても、それはあくまでも自己責任であることを留意いただきたい。
尚本記事の説明はURLに年月が入っている前提なので、日付まで入っている人は手順に若干修正が必要。それでは具体的な方法の説明に入る。
.htaccessに転送の記述をする
サーバーから.htaccessをダウンロードして301リダイレクト用の記述を追記する。.htaccessは普通はホームディレクトリにあると思う。
.htaccessにはデフォルトで下の記述例のハイライトの行以外の部分が書かれている。ハイライトの行が今回の変更で使う301リダイレクト用の記述なので、自分の.htaccessの下の例と同じ場所にコピペする。301リダイレクトの記述はこれで完了。ファイルは修正前にバックアップ推奨。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([0-9]+)/([0-9]+)/(.*)$ /$3 [R=301,NC,L]
RewriteRule ^index\.php$ – [L]RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]</IfModule>
# END WordPress
この転送用記述はURLに年月を含む場合用なのでURLに日付まで入っている場合は多分そのままでは使えない。しかし今回参考にした下記英語サイトには、日付入りURL用の転送記述サンプルもあるのでそれが使えると思う。
参考URL:Remove the date from WordPress permalinks(英語)
ワードプレスの記事URLを日付なしの投稿名のみに設定する
これはワードプレスの管理画面で設定するだけなので簡単。左側のメニューから以下のように選択して設定。
設定パーマリンク設定共通設定で投稿名を選んで変更を保存を押す。
これをやった時点で記事URL(パーマリンク)から年月は消える。
転送設定:.htaccessアップロード
FTPクライアントで、先ほど301リダイレクト用の記述を書いておいた.htaccessを元の場所にアップロードして上書きする。上書き後は無事転送されるかどうか一応確認をしておこう。
これをやっておけば古い日付入りURLへのアクセスが全部新しい日付なしURLに転送される。検索結果やはてブやツイッターから訪問するユーザーに対応できる。
この301リダイレクトをやらないと、古いURLへのアクセスがすべて404エラーになりしばらくの間アクセス消滅は免れない。
Search Regexで内部リンクを書き換え
※最近はBetter Search Replaceというプラグインの方が良いらしい。
記事中の内部リンクは旧URLのままなので新URLに書き換える。内部リンクはリダイレクトも効かなかった気がする(覚えてない)。
内部リンク書き換えには、記事内の文字列の検索と置き換えができるSearch Regexというプラグインを使う。このプラグインは記事本文以外も検索できるが詳しい使い方については割愛。
Search Regexでやるのは記事内に書かれている年月入りURLを検索して年月がない新URLに置き換える作業。
Search Regexをインストール後有効化して管理画面左側メニューのツールSearch Regexを選択して検索画面に行く。
検索項目一番下のRegexの中のcase-insensitiveというのにチェックを入れないと日付の検索ができないのでチェックする。Sourceというのは初期設定でOK。
Search Regex検索・置き換え欄の入力例:年月入りURLを年月なしにする場合
- Search pattern|www.shinentai.com/[0-9]+/[0-9]+|
- Replace patternwww.shinentai.com
Search Patternの方は前後の縦棒も含めて入力。ドメインは各自のドメインに書き換え。
入力したらReplaceボタンを押すと置き換え前後の文字列が表示されるのでまずそれで確認する。問題なければReplace & Saveを押して置き換えを実行。
Search Regexは任意の文字列をブログ全体から抽出して別の文字列に一度に置き換えるプラグインで、僕の場合は使用頻度がものすごく高くこれなしのブログ運営は不可能だと言ってもよい。本文だけでなくカスタムフィールドの文字列も検索できたと思う。
感想まとめ
以上の作業で日付の入ったワードプレスのパーマリンク(URL)から日付を削除、さらに301リダイレクトと内部リンク書き換えも実現できた。
ながモニをフォローしょう!
ながモニではマンガ、アニメ、サブカル、テック系の最新情報を配信しています。