リダイレクト設定を追加する
別で立ち上げているサイト CLUB CAVALIER( https://club-cavalier.com )のサーバを移転して1週間と少し。
アクセス数が極めて少ないサイトではあるんですが、サーバ移転の際にディレクトリ構成を変えてから404エラーが多発していることをログを見て気付きました。
どのようなエラーか
404エラーというのは、普段からも「よく」とは言わないまでも、比較的簡単に目にすることができるエラーで、接続したけれどもページが存在しない、という Not Found のエラーです。
例えば、昨年12月の構成変更以前は、HTMLファイルを、 http://club-cavalier.com/html/xxxx.htm というように、 html ディレクトリで公開していました。
ここで、 http://club-cavalier.com/html/info.htm というページがあったとして、これに興味を持った方がブックマークなどを付けたとします。その後に、サイト管理者(私)が、何らかの理由でこのページを削除します。info.htm ファイルが無くなった後に、ブックマークで info.htm を閲覧しようとすると、404エラー発生となります。
一度公開したページを、何の手当てもせずに削除だけ行うというのは、あまり無いかとは思いますが、ファイル名の変更や、ディレクトリ構成の変更はあり得るかと思います。
CLUB CAVALIER はというと、
2020年11月まで | http://club-cavalier.com/html/ |
2021年7月まで | http://archive.club-cavalier.com/html/ |
2021年8月から | http://archive.club-cavalier.com/html/ |
という感じで、今回のサーバ移転では構成を変えていないので、特に何も対策を講じていなかったんです。
が、実は、2020年12月から2021年7月までは、 http://club-cavalier.com/html/ も「活かしたまま」だったということを、すっかりと忘れていました。
サーバ移転に伴い、ルートの html フォルダは移してませんので、404エラーが発生するはずです。
リダイレクト設定を行う
「ディレクトリが変わったので、ブックマークの修正をお願いします」で、終わらせてもいいのですが、かつてのURLで、新しいURLにアクセスできた方が、親切というものです。
先ほど出した例で話を続けます。
http://club-cavalier.com/html/info.htm
での入力を、
https://archive.club-cavalier.com/html/info.htm
に転送してあげればいいわけです。
追加するのは http://club-cavalier.com/ の階層(ルートディレクトリ)に [.htaccess]という名前のファイルです。
※実際には、WordPressを運用していますので、既に .htaccess ファイルは存在しています。
RewriteEngine On
RewriteRule ^html/(.*)$ https://archive.club-cavalier.com/html/$1 [R=301,L]
これでOK。
複数行の設定は
htmlと同様、clubディレクトリ・blogディレクトリを archive.club-cavalier.com/club や、 archive.club-cavalier.com/blog と、転送させてあげる必要があります。
もちろん、 .htaccess に同じように追加すればよいのですが、ひとつ気になることが。
RewriteRule ^html/(.*)$ https://archive.club-cavalier.com/html/$1 [R=301,L]
前方で現れる赤字部分を、青字部分で代入するための記述方法です。
複数行を記述する場合、1行単位で数字が付けられる?それとも .htaccessファイルでの通し番号?
RewriteEngine On
RewriteRule ^html/(.*)$ https://archive.club-cavalier.com/html/$1 [R=301,L]
RewriteRule ^club/(.*)$ https://archive.club-cavalier.com/club/$1 [R=301,L]
RewriteRule ^blog/(.*)$ https://archive.club-cavalier.com/blog/$1 [R=301,L]
結論からいうと、これで大丈夫。1行単位、ということなんでしょうね。