BTC:--
ETH:--
BCH:--
XRP:--

html拡張子のページをWordPressのディレクトリページへリダイレクトする

html拡張子のページをWordPressのディレクトリページへリダイレクトする

先日の通常のHTMLサイトをWP(Wordpress)に移行する作業で考慮もれしていたのが、ページのURLの構造。
既存のHTMLサイトは、各ページにhtml拡張子がついているのですが、WP側はページがディレクトリへの指定になっていて、拡張子はありません。

移行時に、既存サイトURLから、html拡張子を除去した状態で、スラッグに保存すればいいのですが、Google検索結果には、html拡張子が残った状態が検索時に表示されいるので、検索結果からアクセスしようとすると、「ページがありません」となってしまいます。

htaccessでのやり方がわからなかったので、wp側でリダイレクトする方法です。
404ページになった時に、html拡張子であれば、それを取り除いた状態のURLへ301リダイレクトします。
WP側で本当にないページに関しては、この部分をスキップしてページなしのエラーを出力できます。

funtcion.phpに記述します。

function is404_redirect_home() {
  if( is_404() ){
    $match = preg_match('/(.html)/', $_SERVER["REQUEST_URI"]);
    if($match==1) {
      $url = preg_replace('/(.html)/', '', $_SERVER["REQUEST_URI"]);
      $redirect_url = home_url().$url;
      wp_safe_redirect($redirect_url , 301 );
      exit();
    }
  }
}
add_action( 'template_redirect', 'is404_redirect_home' );
メニューを閉じる