初めてのリダイレクト処理 当社のエンジニアがかかわったwebサイト運営の実例を紹介

はじめに

IT業界未経験の私が今回初めて業務に携わり行った業務、直面した問題についてアウトプットも兼ねて記事にしてみました。

今回行った業務について

私が任されたのはサイトを移行するにあたってのリダイレクト処理でした。リダイレクト処理の方法については、htaccess、php、meta refreshやJavaScript等、色々ありますが今回はhtaccessを使って行いました。

具体的な内容としては、正規表現を用いて、旧サイトURLを新しいサイトURLへ書き換えを行い、旧サイトへアクセスした際に自動で新しいサイトへページ遷移するように処理を行うというものでした。

リダイレクト処理の説明画像

直面した問題と対処

今回の作業で難しかったのが、旧URLへアクセスがあった際に正規表現を使って新しいURLのサイトが表示されるようにするのだが、いくら試しても404(Not Found)エラーが表示されたり、目的のページではなく違うページが表示され、リダイレクト処理が成功しないというものでした。
原因としては私の正規表現に問題があったのですが、今回の業務では自分の力では解決できず、先輩エンジニアの方に解決していただきました。

学んだこと

正直、今回の業務では全く力にはなれなかったのですが、業務を通して自分なりに学んだことを書いていきたいと思います。

httpステータスコードについて

今回の業務では、サイト移行作業ということで、ステータスコードが301、恒久的なリダイレクト処理を行いました。ステータスコードが301なら恒久的、302なら一時的なリダイレクトを表し、200なら処理が正常に完了、403ならアクセス拒否、404ならNot Found(ページが存在しない)など表示される数字が何を表しているかを学習しました。

ステータスコード内容
301恒久的なリダイレクト処理
302一時的なリダイレクト処理
202処理が正常に完了
403アクセス拒否
404Not Found(ページが存在しない)
代表的なhttpステータスコード(参考:HTTPステータスコード一覧とリクエストとレスポンスの意味を解説

htaccessを使ったリダイレクト処理について

リダイレクト処理といっても、その処理が恒久的なものなのか、一時的なものなのかだけでなく、ページ単位、ディレクトリ単位やドメイン単位など目的ごとに使い分けます。

正規表現について

例えば、全てのページへのアクセスをhttp://www.aaaaa.co.jpへアクセスするようにする場合、以下のようにhtaccessファイルに記述します。
RewriteRule ^/(.*) http://www.aaaaa.co.jp [R=301,L]
この場合、^が行の頭、(.*)はあらゆる文字列を対象とするという意味で、R=301が301リダイレクトを表し、LがLastのLでURLの書き換えの終了を意味しています。

まとめ

以上が私が今回の業務を通じて直面した問題、学んだことです。正規表現はまるで暗号のようで難しく、htaccessなどまだまだ知らないことばかりですが今回の経験をこれからの業務に活かして成長していきたいです。
以下に今回の業務で私が参考にしたサイトを載せておきます。

httpステータスコードについて
https://www.itmanage.co.jp/column/http-www-request-response-statuscode/

httpaccessを使ったリダイレクト処理について
https://ecco.co.jp/blog/htaccess-redirect/
https://lpeg.info/html/htaccess_redirect.html
https://laraweb.net/environment/9367/

正規表現について
https://www.wakuwakubank.com/posts/859-it-regular-expression/
https://userweb.mnet.ne.jp/nakama/

正規表現についてはチェックしてくれるサイトもあるのでぜひお試しください。
https://weblabo.oscasierra.net/tools/regex/

作者情報

音楽好きのIT業界未経験者です。現在は応用情報技術者取得に向け勉強中。