質問: サイト改修に伴い、トップページと数ページを残し、それ以外のページにアクセスがあったときに トップページに301でリダイレクトするようにしたいと考えています。 現状、トップページ以外のページにアクセスしたときにトップページに301リダイレクトするところまではできたのですが、今まで通りアクセスできるにしておきたいページに関して上手く処理が書けなく悩んでおります。 以下のhtaccessでtestページのときだけ301リダイレクトをしないで処理が終わるようにしたいのですが、 testページにアクセスするとトップページに301リダイレクトしてしまいます。 testページのみアクセスでき、他ページのときはトップページに301リダイレクトするような処理の書き方を ご教授ください。 何卒よろしくお願いします。 【備考】 ・wordpressを使用したサイトです。 ・htaccessファイルはwp-adminやwp-contentのフォルダーのある場所の物を編集しています。 ``` # BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteRule ^test$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [R=301,L] # END WordPress ```
回答: こちらが同様かなと思います。 こんな感じで如何でしょうか。 ``` RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteRule ^test$ - [L] # ここは削ってもいいかもしれない RewriteCond %{REQUEST_FILENAME} !-f # 存在しないファイル指定の場合 RewriteRule適用 RewriteCond %{REQUEST_FILENAME} !-d # 存在しないディレクトリ指定の場合 RewriteRule適用 RewriteCond %{REQUEST_FILENAME} !^test$ # 追加。/test を除くURLなら RewriteRule適用 RewriteRule . /index.php [R=301,L] ```