@rocketmartue さん色々とご享受頂きありがとうございます。
ご連絡がおそくなり申し訳ありません。
いただいたコードを試してみて結果をお伝えいたします。
まず、
function disable_canonical_for_nonexistent_posts( $redirect_url ) {
// シングル投稿ページで、投稿が存在しない場合
if ( is_singular('post') && ! have_posts() ) {
return false; // canonicalリダイレクトをキャンセル
}
return $redirect_url;
}
add_filter( 'redirect_canonical', 'disable_canonical_for_nonexistent_posts' );
上記コードですが、実行してみましたが、結果的には挙動は同じで、
hoge.jp/news/12323/ を hoge.jp/hp_archive/news/12323/ へリダイレクトしたいが実際は hoge.jp/news/ が表示される。
になりました。
また.htaccess
でのリダイレクトですが、
<IfModule mod_rewrite.c>
RewriteEngine On
# /news/以下のリクエストで、実在するファイル・ディレクトリでなければリダイレクト
RewriteCond %{REQUEST_URI} ^/news/(.+)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^news/(.+)$ /hp_archive/news/$1 [R=301,L]
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
この場合新サイトで投稿した投稿も全て/hp_archive/news/に飛ばされてしまいうまくいきませんでした。
また何か方法がありましたらご享受いただければ幸いです。色々とありがとうございます。
※因みに、パーマリンクは
旧サイトはnews/%post_id%
新サイトはnews/%postname%
になっているので、その辺りの条件をhtaccessに入れたらたら、うまくいくのかな?と思ったんですが
正規表現が苦手なので困っております。