301リダイレクトを試みたもののエラーが出て新ドメインへリダイレクトされないという事態が発生Σ( ̄ロ ̄lll) ガビーン
サーバー管理やらプログラミングの知識もほぼない初心者の私でもググって解決できたので、備忘録も兼ねて記事にします。
ちなみに私は「サイトのドメイン変更」を行ったため、301リダイレクト設定が必要でした。
エックスサーバーを利用していれば全てのページにリダイレクトを簡単に設定することができます。サーバーパネルの「サイト転送設定」内でURLを入力するだけなのに・・・設定後に旧ドメインへアクセスすると、、、
ΣΣ( ̄◇ ̄;)!ハウッ!?
リダイレクトどころか「サーバーエラー 500」と大きく表示され、旧ドメインにアクセスすることもできなくなってしまいました。
エラー解決の前に、まずは私が行ったリダイレクトの設定方法を記載しておきます。「サイト転送設定」を行えば「.htaccess」に自動でリダイレクトコードが記載されます。
目次
エックスサーバーの「サイト転送設定」で簡単リダイレクト設定
通常は「.htaccess」をテキストエディタ(Tera Pad)等で開いて自分でコードを追記するという方法をとられる方が多いかもしれませんが、エックスサーバーの便利機能でちゃちゃっと設定すれば記載ミスもおこらないと思いこの方法を採用しました。
エックスサーバーを利用していればリダイレクトを簡単に設定することができます。
旧ドメインを登録しているサーバーパネルへログインします。
「サイト転送設定」をクリック。
ドメイン選択画面が表示されるので、旧ドメインを選択します。
「リダイレクト設定追加」を選択し、設定対称ドメインを確認。
リダイレクト先に新ドメインを入力し「http://〇〇〇〇〇〇」
「確認画面へ進む」をクリック。
「リダイレクト設定一覧」を選択し「リダイレクト先」に新ドメインが反映されていることを確認できれば設定完了です。
これで、旧ドメインへアクセスしてみると新ドメインへリダイレクトされる・・・・はずでした。
ここまでの設定を終わらせ、旧ドメインへアクセスするとエラー発生。
エラーが起こっている箇所を特定する方法
再度エラーを確認してみます。
「.htaccess の記載に誤りがある。」と確認できます。
やはりリダイレクト設定をすると「.htaccess」にコードが追記されるので「.htaccess」内を確認してみることにしました。
エックスサーバーで「.htaccess」内のコードを簡単に確認する方法
サーバーパネルへログインし、「.htaccess編集」をクリック。
ドメイン選択画面が表示されるので、旧ドメインを選択します。
「.htaccess」内のコード内容を理解してみる
上部の「.htaccess編集」をクリックすると内部が確認できます。
青い部分は
サイトをSSL化に対応させるため、「http://」アドレスへアクセスがあった場合に「https://」アドレスへリダイレクトされるよう追記したコード
赤い部分は
「.htaccess編集」の定型文みたいなもの。絶対にいじったらダメな部分です。
オレンジ部分が
今回の301リダイレクト設定で自動追記されたコードです。
この画像を一目見てエラー箇所が分かる方は勘が鋭い。てか知識ある方なら分かるんでしょうが私は気づきませんでした。
色で囲っていない部分に
変な「/」スラッシュがいくつか確認できますね。
おぬし、、怪しい( ̄  ̄メ)
ちなみに、「.htaccess」の中身を確認しても分からない場合もあると思うので、サーバーパネルからエラー箇所を確認する方法を記載しておきます。
サーバーパネル内でエラー箇所を確認する方法
サーバーパネルの「エラーログ」をクリック。
ドメイン選択画面が表示されるので、旧ドメインを選択します。
「ダウンロード」をクリック
テキストエディタでエラーコードを確認
ダウンロードした「〇〇〇〇〇〇.error_log」をテキストエディタで開きます。私が使っているのはTeraPadです。
理解に苦しむ文字ずーらー。。。でもじっくり見てみると何やら同じことを何度も言っているようです。
.htaccess: Invalid command ‘/’, perhaps misspelled or defined by a module not included in the server configuration
訳:.htaccess:無効なコマンド ‘/’のスペルが間違っているか、サーバー構成に含まれていないモジュールによって定義されている可能性があります
やはり貴様だったか「/」
(* ̄  ̄)スラッシュめー!!!!
「.htaccess」のエラーコードを削除
というわけで、下記のエラーの原因だった「/」を全て削除し、
「確認画面へ進む」をクリック。
編集を完了させるため必ず「実行する」をクリックします。
すると無事にエラーが解消でき、旧ドメインへアクセスすると自動で新ドメインへリダイレクトされるようになりました!
まとめ
301リダイレクト設定がうまくいかない原因は人によっていろいろだと思います。カスタマイズで「.htaccess」内に他のコードを記載している場合それがエラーの原因になっている場合もあるでしょう。
ただし、初心者でもエラーの箇所を特定する方法を知っておけばある程度までは対応できるかと。
私と同じくサーバーエラーが解決できず困っていた方のお役に立てていたら嬉しいです☆