サポート » 使い方全般 » https→httpに勝手にリダイレクトされてしまいます

  • 解決済 Haruka_Suzuki

    (@haruka_suzuki)


    webサイト丸々をhttps化しています。

    wordpressは、
    hoge.org/blog/
    にインストールしています。

    さきにwordpressとは関係無い
    ホームページ hoge.org/
    のリダイレクトやhttps化をしました。
    さくらのスタンダードで、SNI 独自SSLです。
    なんの問題もなくhttp→httpsのリダイレクトで動きます。
    http ,httpsの判断は
    RewriteCond %{ENV:HTTPS} !^on$
    でやっています。

    同じようにWordPressもhttps化をしたくて
    色々やっているのですが、
    httpsでurlを入力しても自動的にhttpに
    301リダイレクトされてしまいます。

    ・プラグインすべて外しても同じ
    ・テーマを標準の適当なのにしてみても同じ

    もの凄く基本的な事を聞いているかもですが、
    全く分からないので教えて欲しいです。

    ちなみに画像やファイル例えば
    https://www.hoge.org/blog/(画像のアップロードurl).png
    ↑正しく表示します。
    また、管理画面をhttpsで開いたら
    管理画面も正しくSSLの画面で設定や変更が可能です。

    ブログだけが勝手にリダイレクトされます。
    .htaccsessは、wordpressが作ったセクションは
    触ってないし、それ以外のリダイレクトは使ってません。

    どうかよろしくお願いします。

5件の返信を表示中 - 16 - 20件目 (全20件中)
  • トピック投稿者 Haruka_Suzuki

    (@haruka_suzuki)

    原因判明しました。

    https://www.haluka.org/

    上述のURLでさくらのサーバが出力する環境変数例は、
    以下の通りです。

    $_SERVER['HTTPS'] = on
    $_SERVER['HTTP_HOST'] = haluka.org
    $_SERVER['HTTP_X_SAKURA_FORWARDED_FOR'] = *.*.*.*(マスク)
    $_SERVER['SERVER_PORT'] = 80
    $_SERVER['SERVER_NAME'] = haluka.org
    
    $_ENV['HTTPS'] = on
    $_ENV['HTTP_HOST'] = haluka.org
    $_ENV['HTTP_X_SAKURA_FORWARDED_FOR'] = *.*.*.*(マスク)
    $_ENV['SERVER_NAME'] = haluka.org
    $_ENV['SERVER_PORT'] = 80

    証明書を見て頂ければ分かりますが、私は証明書をwww付きで取っていますし
    さくらの設定もそうしています。
    しかしながら、さくらのサーバは、sslでwww付きでアクセスしているにもかかわらず
    www無しの環境変数を返却します。

    このため、私のサイトのようにwww付きのサイトでSSLを導入すると
    必ずリダイレクトループになります。

    <解決案>
    wwwを取る

    あり得ない対応です。

    <結論>
    さくらのサーバでwww付きの独自SSL SNIでwordpressは動かない

    <なぜ分かったか?>
    なんどか再インストールしているうちに、
    wp-admin/install.php
    で指定したときのサーバではないもの(wwwがとれたもの)が
    自動設定されるので、環境変数がおかしいのを疑いました。
    そして、確認してみると案の定サーバ名称が異常でした。
    (もっと早く気づけよという感じですw)

    余談ですが、さくらでsniや共有SSL使っている人は
    https://foo.jp→https://www.foo.jp/
    のリダイレクトは出来ないという事になると思います。
    どちらもfoo.jpで返ってくるので。

    何か良い解決方法があれば、教えてください。
    もし、しばらく待っても何も無いようであれば
    クローズしたいと思います。

    なお、httpsのプラグインなどは使う予定はないですし
    https://foo.jp/blog
    で設定して動かし、無理矢理https://www~にリダイレクトができるのは分かっています。
    その場合、サーチエンジンなどすべてwwwなしで通知します。

    トピック投稿者 Haruka_Suzuki

    (@haruka_suzuki)

    とりあえず、原因が分かれば対策もあるという事で、

    // プロクシでIPが入るとSSLアクセス状態をセットする
    if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) {
        $_SERVER['HTTPS'] = 'on';
        $_ENV['HTTPS'] = 'on';
        $_SERVER['HTTP_HOST'] = 'www.haluka.org';
        $_SERVER['SERVER_NAME'] = 'www.haluka.org';
        $_ENV['HTTP_HOST'] = 'www.haluka.org';
        $_ENV['SERVER_NAME'] = 'www.haluka.org';
    }
    /** SSL関連 */
    define('WP_SITEURL', 'https://www.haluka.org/blog/');
    define('WP_HOME', 'https://www.haluka.org/blog/');
    define('FORCE_SSL_ADMIN', true);

    これで、ちゃんと動いてます。
    私はアパッチとかphpとか全く知らないのですが、
    これがどれだけ馬鹿げた行為なのかというのは
    なんとなく理解しています。
    でも、何かの助けになればと思って情報を残しておきます。

    ではでは。

    トピック投稿者 Haruka_Suzuki

    (@haruka_suzuki)

    4ヶ月まえに散々なやんだ事ですが、
    さくらのSSL割安キャンペーンで、同じ目に逢っている人が沢山いますね。

    さくらのスタンダードで独自ドメインをwww付きで統一したい場合
    必ずリダイレクトループの問題が発生しますので、
    私のページを参考に www付き、www無しをそれぞれ、
    サーバーコントロールパネルのドメイン設定で行って下さい。

    また、wp-configの設定も実施する様にして下さい。

    さくらでHTTPSにするSSL SNIの設定の仕方

    トピック投稿者 Haruka_Suzuki

    (@haruka_suzuki)

    さくら、スタンダードについて、私のページの読者より

    環境変数
    HTTP_X_SAKURA_FORWARDED_FOR
    が、HTTPのアクセスでもアクセス元のIPアドレスがセットされるようになりました。

    全サーバなのか、新契約者だけなのか、
    一部のサーバだけなのか、インストールの仕方なのかは、不明な状態です。

    この変数はさくらで、快適にHTTPSを使うには欠かせない変数でしたが
    このような仕様変更が発生した場合は、

    さくらでWordPressをSSLで動かせないという結論に至ります。

    もし私のサイトの設定をした場合、リダイレクトループになったら
    本現象が発生しているためと思われます。
    問題部分は

    if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) {
        $_SERVER['HTTPS'] = 'on';
        $_ENV['HTTPS'] = 'on';

    にてHTTP_X_SAKURA_FORWARDED_FORに何か値(IPアドレス)が入っていたら
    すべてSSLとするため、リダイレクトループになります。

    とっても残念ですが、サポートの状況を見る限り、
    さくらのレンタルサーバプランでSSL化は、得策では無いと思います。
    さくらをどうしても使いたい場合は、VPSなどのプランであれば
    問題無く(私はVPSに変えました)動作します。

    どなたか、解決法があればアドバイスをお願いします。

    PS.以前Hinaloeさんが提示してくれたサイトで
    簡単に環境変数を調べるスクリプトが公開されています。
    こちらで、自分のプランでHTTP_X_SAKURA_FORWARDED_FORに何が入るか確認できます。
    httpで接続してみて、この変数に値が入っていればSSLは無理です。諦めましょう。

    test.phpをftp転送して実行してみればOKです

    さくらレンタルサーバーの共有SSLを使う

    トピック投稿者 Haruka_Suzuki

    (@haruka_suzuki)

    本件に関して、さくらサポートに問い合わせたところ、

    環境変数を変更する等の仕様変更は実施していない

    と回答を得ました。

    とりあえず、ブログの方が何故HTTPでアクセスしているにもかかわらず
    リバースプロクシ経由となっているのか、分からないままです。
    本件、私のブログの内容で対策を実施し正常に動作した場合は、
    特になにかする必要は無いと思います。

    まずは、情報まで。

    PS.今回の現象発生者は、さくらの自動インストールでWordPressを
    インストールしたそうです。もし余裕があるなら
    手動でアップロードした方が良さそうですね。

5件の返信を表示中 - 16 - 20件目 (全20件中)
  • トピック「https→httpに勝手にリダイレクトされてしまいます」には新たに返信することはできません。