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

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

新規登録して質問してみよう
ただいま回答率
85.48%
.htaccess

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

Q&A

解決済

1回答

738閲覧

共用SSLから常時SSLへ変更した際のリダイレクト

pochi2019

総合スコア5

.htaccess

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

0グッド

0クリップ

投稿2019/11/21 12:59

前提・実現したいこと

お問い合わせページに共用SSLを使っていましたが、サイトを常時SSL化したので、.htaccessでリダイレクトさせたいのですがうまくいきません。

外部サイトに共用SSLのリンクが残っていて、こちらで変更できないので、できれば対応しておきたい状況です。

ヒントや参考情報のご提示だけでも助かるので、ご教示いただけないでしょうか? よろしくお願いいたします。

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

www有無の統一やhttp→https、普通の301リダイレクトなど定番的なものなら設定方法を覚えたので対応できているのですが… 
基礎知識がないので応用が効かず、検索しても同じケースが探せなくて困っております。

該当のソースコード

リダイレクト元(共用SSLページ)
https://secure02.blue.shared-server.net/example.com/contact/

リダイレクト先
https://example.com/contact/

試したこと

下記のように指定するだけではダメなことは分かりました。

RewriteRule リダイレクト元URL リダイレクト先URL [R=301,L]

Redirect permanent リダイレクト元URL リダイレクト先URL

RewriteCond %{HTTP_HOST} リダイレクト元URL
RewriteRule ^(.*)$ リダイレクト先URL $1 [R=301,L]

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

レンタルサーバはGMOホスティングのiCLUSTA+(アイクラスタプラス)です。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Redirect permanent リダイレクト元URL リダイレクト先URL

これでいいはずですが、実際はどう書いたんですかね?

下記を、https://secure02.blue.shared-server.net/の設定ファイルか.htaccessに入れます。

Apache

1Redirect permanent /example.com/contact https://example.com/contact

#追記
リライトでやる場合。修正版。

Apache

1RewriteEngine On 2RewriteCond %{HTTP_HOST} ^secure02.blue.shared-server.net$ 3RewriteRule ^example.com/contact/(.*)$ https://example.com/contact/$1 [R=301]

投稿2019/11/21 13:23

編集2019/11/22 07:10
otn

総合スコア84555

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

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

pochi2019

2019/11/21 14:18

レスありがとうございます!! 3つめの書き方ですと、サイト自体が Internal Server Error になってしまいました。。
pochi2019

2019/11/21 14:29

>https://secure02.blue.shared-server.net/example.com/contact/ にアクセスした際に、どうなりました? こちらご報告漏れでした! 上記にアクセスすると、リダイレクトが効いてないので何も起こりません。元のURLでは、CSSや画像のリンク切れが生じているので、表示が崩れた状態でリンクも正しくないまま表示されている状態です。。
pochi2019

2019/11/21 14:39

ありがとうございます! >どこの.htaccessに書きましたか? https://example.com/ に置いてある .htaccessです。 > は別サーバーですか?それとも同じディレクトリに2つのURLがある? 同じサーバーという認識です。共用レンタルサーバ1つ借りているだけで、その中での話なので、同じサーバということで間違いないと思います。。
otn

2019/11/21 14:49

https://secure02.blue.shared-server.net/example.com/ の.htaccess に書くべきですが、 https://example.com/ と同じディレクトリということですかね。 Redirectの飛び先に本当に https://example.com/contact とそのまま書いてみてください。一応、https://example.com は実在して、「ここはExampleドメインだよ」という画面を出してくれます。飛びますか? あと、そこの .htaccess に書くのは初めてですか?今回作成したファイル?
pochi2019

2019/11/22 00:38

何度もありがとうございます! 同じディレクトリかという件、よく分かってないかもしれませんが… 「ここへアップせよ」という場所もなく、/contact/ のアップ場所は共用SSL導入前も後も現在も移動してないので、同じだと思っています。 飛び先に https://example.com/contact このまま指定してみたら、やはりサイト自体が Internal Server Error になりました。 あと、この .htaccess は以前から www有無の指定のみに使っていました。 なお最初に、そもそも可能なのか分からなかったので一応サーバの技術サポートに問い合わせたら、具体的な書き方はサポート外だが可能だと言われたので、調べれば分かるだろうと安心してたのですが…。。
otn

2019/11/22 00:57 編集

その.htaccessにRedirect 文を書くのは初めてですか? だとすると、サーバー側で .htaccess に Redirect を書けないようにしているのかも知れません。エラーログは見られますか? Apacheリファレンスだと、 > Redirect ディレクティブ > コンテキスト: サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess と書いてあるのですが。 Rewrite~~ が書けるならそれで書くかな。
pochi2019

2019/11/22 02:26

お返事と手掛かり色々ありがとうございます。 Redirect と書くのは初めてでした。 エラーログは…どうやって見るのか調べてましたが分からず、ハードル高すぎて無理そうです… なおサーバのヘルプを見直したら、次のようにありました。 直接関係ないかもしれませんが、サーバ独自の制限等があるということなんですね… ・RewriteCond %{HTTPS} off の記述には非対応 ・ファイル制御に関する表記には非対応(AuthConfig と Limit のみ) Redirect~を使わず、Rewrite~の書き方なら出来るかも、ということでしょうか。もうちょっと調べてみます!
pochi2019

2019/11/22 04:42

試しに別なサーバ(ロリポップ)で同じ状態をテストしてみましたら、 下記のような書き方で飛べることを確認しました。 Redirect permanent /example.com/contact https://example.com/contact また、1つ上の階層へ飛ばすという下記の方法を試したら、 ロリポップではうまくいき、GMOの方はこれもエラーでした。 やはり「Redirect」が入っているのでダメなのかもしれませんね。 RewriteCond %{HTTP_HOST} ^(secure02.blue.shared-server.net)(:80)? [NC] Redirect permanent /example.com/ / RewriteRule ^(.*) https://example.com/$1 [R=301,L]
pochi2019

2019/11/22 07:03

リライトでやる場合の回答ありがとうございました! が、やはりロリポップはちゃんと飛ぶのにGMOは飛びませんでした… けどエラーは出なくなり(飛ばないだけ)、あと一歩な気もしますが、これだけダメならもう仕方ないかなと思えてきました。。 おかげさまで3パターンも書き方覚えることができましたし(笑)
otn

2019/11/22 07:09

ああ、うっかり間違えました。訂正しておきます。
pochi2019

2019/11/22 07:38

わざわざすみません!ありがとうございます。 でもロリポップではあのままでも飛べて、GMOは修正版でも飛べず…でした。 しかしサーバによってこれほど違うとは…(もちろん契約プランとかで違うと思いますが)
pochi2019

2019/11/22 13:52

ご報告:今回はせっかく正しい記述とアドバイスいただいたのに、サーバの仕様によって出来ないということで、諦めることにしました。 まだ他の記述方法で実現できるかもしれませんが、今後これと同様なケース+同様なサーバという状況もあまり無さそうですから。 で今回は、リンク切れ+表示の崩れている /contact ページ上のリンク等を全て絶対パスに書き換えることで対応することにしました。 otn様には、ご回答だけでなく考え方的なアドバイスもいただけたと思います。とても参考になり、どうもありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問