質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

2233閲覧

503リダイレクトを実施したい

sasameyuki_mado

総合スコア2

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/12/30 06:54

編集2021/12/30 10:39

前提・実現したいこと

自身のサイトでメンテナンスを実施するさい、.htaccessを使用してメンテナンスページにリダイレクトさせようとしています。

発生している問題・エラーメッセージ

http://ドメイン名.com と全てのページについてmaintenance.htmlにリダイレクトさせたいのですが、リダイレクトされません。
.htaccessファイルの記述がないときと同じ結果になります。

該当のソースコード

以下の.htaccessファイルを記述し、ルートに設置しています。
使用しているサーバ(ロリポップ)では、パーミッションは604に設定するようと書いてあったので、パーミッションは604にしています。
また分かりづらいですが、末尾には改行を入れています。

htaccess

1ErrorDocument 503 /maintenance.html 2RewriteEngine On 3RewriteCond %{REQUEST_URI} !=/maintenance.html 4RewriteCond %{REQUEST_FILENAME} !.(css|jpe?g|gif|png|js)$ 5RewriteRule ^.*$ - [R=503,L] 6

補足情報(FW/ツールのバージョンなど)

サーバはロリポップを使用しています。以前は上記記述でリダイレクトができていました。
また他にリダイレクトの記述はありません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2021/12/30 07:48

Q1. お書きの5行の記述が全くない場合と同じ結果と言うことでしょうか? Q2. 他にリダイレクトの記述はないですか? Q3. .htaccessは有効でしょうか?AllowOverride設定は?
sasameyuki_mado

2021/12/30 10:40

大変失礼いたしました。Q1 Q2については追記いたしましたが以下にも追記いたします。 Q1→そのとおりです Q2→特にありません Q3ですが、こちらはhttpd.confでAllowOverride ALLにしているか、という意味でしょうか…?
otn

2021/12/30 12:40

Q3はそういう意味です。 原因切り分けのために、可能であれば、.htaccessを下記だけにして、https://~~/test が、リダイレクトされますか? RewriteEngine On RewriteRule ^test$ https://www.google.com [R,L]
otn

2021/12/30 12:45

手元の環境で、ドメイン名ファイル名以外同じでやってみましたが、期待通りですね。 HTTP上では503コードが返って、ブラウザには指定ページが出ます。
sasameyuki_mado

2021/12/30 17:03

ありがとうございます。 Q3について→ロリポップにはAllowOverrideをAllに設定する方法がないようです。httpd.confを設定はできないとありました。https://support.mc.lolipop.jp/hc/ja/articles/360055703654-httpd-conf-%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B- またいただいた記述でhtaccessを書き換えましたが、https://~~/testはGoogleにリダイレクトされませんでした。
otn

2021/12/31 05:49

そのサイトに、 > .htaccess は使えますか? > PHP プロジェクト、WordPress プロジェクトの場合のみご利用いただけます。 と書いてありますが、使える契約プランなんですか? 念のため、.htaccessにabcdeのような意味の無い文字列を入れてみてください。普通は、設定ファイルの文法エラーで、ブラウザには500エラーを返します。 500エラーにならないとすると、そもそも.htaccessが読まれてもいないと言うことです。
sasameyuki_mado

2021/12/31 11:37

.htaccessを使用して404リダイレクトを実施したことがあり、それは正しく動作していました。またいただいた内容で.htaccessを記述したところ、500エラーが返ってきました。
otn

2021/12/31 12:05 編集

ほう。.htaccessが使えるのにrewriteが書けないと言うことですね。 書かれていることに全部間違いが無いのなら、サポートに聞くしかなさそうです。
sasameyuki_mado

2021/12/31 15:06

確かにサポートに問い合わせたほうが良さそうです。。また結果がわかりましたら更新いたします。年の瀬に色々とありがとうございました。
guest

回答1

0

自己解決

これを解決法として書くのが良いのかわからないのですが、この手順を踏んだところうまくいったので掲載しておきます。

まず追記で頂いていた公式への問い合わせですが、公式からはサポートの対象外とのお返事を頂いてしまいました。
次にhtaccessを以下の通り記述し直しました。というのもGoogleにインデックスしないようにしていたため、もしかしたらそれが影響しているのかも……?と思ったりしたのです。

# ErrorDocument 503 /maintenance.html RewriteEngine On RewriteCond %{REQUEST_URI} !=/maintenance.html RewriteCond %{REQUEST_FILENAME} !.(css|jpe?g|gif|png|js)$ RewriteRule ^(.*)$ http://ドメイン名.com/$1 [R,L]

ところが、これではリダイレクトループに陥りました。
ということでもう一度以下の記述に戻したところ、なぜかうまくいったという次第です。

ErrorDocument 503 /maintenance.html RewriteEngine On RewriteCond %{REQUEST_URI} !=/maintenance.html RewriteCond %{REQUEST_FILENAME} !.(css|jpe?g|gif|png|js)$ RewriteRule ^.*$ - [R=503,L]

年末年始なのでサーバ側が少しご機嫌斜めだったのでしょうか。
以上を解決方法といたします……。
ありがとうございました。

投稿2022/01/01 08:10

sasameyuki_mado

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問