前提・実現したいこと
ウェブサイトのリニューアルに伴い、.htaccessを使って
/new/aaa.html を /news/aaa/(index.phpは省略)
へリダイレクトさせたいと考えています。
aaaの部分は、決まったページではなく、
どんな文字列になっていても良いようにルール化したいのですが、
可能なものでしょうか?
###試してみたこと
下記の記述ですと、1つのページでしかルールが適用されません。
htaccess
1RewriteEngine on 2RewriteRule ^aaa.html$ https://www.example.com/aaa/ [L,R=301]
今回は、/new/ディレクトリ以下の全ページに適用させたいです。
htaccess
1RewriteRule ^new/(.*).html$ /news/$1/ [R=301] 2RewriteRule ^.*new/(.*).html$ /news/$1/ [R=301]
これらを試してみましたが、404ページに行ってしまいます。
補足情報
.htaccessのキャッシュを更新できるよう、Chromeの開発者ツールで
「キャッシュの削除とハード再読み込み」を使用して確認しています。
リニューアル後のサイトはWordpress(5.8.2)を利用しております。
上記のことを実現させるのに適したプラグイン等をご存知でしたら
.htaccessを直接書く方法ではなくても結構です。
追加情報
他の記述が干渉してしまっている可能性もあるため、全体を掲載します。
他にも変な記載になってしまっているところがありましたら
ご指摘いただけますと幸いです。
htaccess
1# BEGIN WordPress 2# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は 3# 動的に生成され、WordPress フィルターによってのみ修正が可能です。 4# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。 5<IfModule mod_rewrite.c> 6RewriteEngine On 7RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 8RewriteBase / 9RewriteRule ^index.php$ - [L] 10RewriteCond %{REQUEST_FILENAME} !-f 11RewriteCond %{REQUEST_FILENAME} !-d 12RewriteRule . /index.php [L] 13</IfModule> 14# END WordPress 15 16# BEGIN-HTACCESS 17# このBEGIN-ENDはヘテムルコントロールパネルから挿入されました。編集しないようにお願いします。 18AuthUserFile /aaa/bbb/ccc/.htpasswd 19AuthGroupFile /dev/null 20AuthName "please input ID/PW" 21AuthType Basic 22require valid-user 23# END-HTACCESS 24 25#追加ここから 26<IfModule mod_rewrite.c> 27RewriteEngine on 28RewriteBase / 29 30#index.html/phpのありからなしへ統一 31RewriteCond %{REQUEST_URI} ^.*/index.(html|php)$ 32RewriteRule ^(.*)index.(html|php)$ https://%{HTTP_HOST}/$1 [R=301] 33 34#httpからのアクセスをhttpsに統一 35RewriteCond %{HTTPS} off 36RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301] 37 38#wwwなしをありに統一 39RewriteCond %{HTTP_HOST} !^www. [NC] 40RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301] 41 42#/products/から/products-list/へのリダイレクト 43RewriteRule ^(.*)products/$ https://%{HTTP_HOST}/products-list/ [R=301] 44 45#/new/aaa.htmlから/news/aaa/へのリダイレクトテスト 46RewriteRule ^new/(.*).html$ /news/$1/ [R=301] 47RewriteRule ^new/(.*).html$ https://%{HTTP_HOST}/news/$1/ [R=301] 48RewriteRule ^.*new/(.*).html$ /news/$1/ [R=301] 49RewriteRule ^.*new/(.*).html$ https://%{HTTP_HOST}/news/$1/ [R=301] 50</IfModule> 51#追加ここまで 52
回答2件
あなたの回答
tips
プレビュー