サポート » 使い方全般 » www.ありにリダイレクトすると、ダッシュボードにログインできなくなる

  • さくらサーバーにドメインを入れました。
    そのドメインは、「www.あり」で運営したいため、
    http://www.なしのURLをwww.ありにリダイレクトする必要があります。

    ですが、www.ありにリダイレクトすると、ダッシュボードにログインできなくなります。

    1,さくらサーバーで常時SSL化するために、www.なしでサーバーに登録。

    2,SSL化をしてから、www.ありへリダイレクト。

    という手順を踏んでいます。

    この「www.あり」へリダイレクトして、ログインできるようにするにはどうすればいいでしょうか?

    以下を.htaccessの一番上に記述しました。

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(ドメイン\.com)$ [NC]
    RewriteRule (.*) http://www.ドメイン.com%{REQUEST_URI} [R=301,L]

    さくらサーバーにお問い合わせしましたが、
    .htaccessのリダイレクト関連は、サポート対象外とのことです。

    よろしくお願いいたします。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • モデレーター のむらけい

    (@mypacecreator)

    さくらのレンタルサーバで、ダッシュボードへのログインができない現象は、wwwありなしの正規化というより、常時SSLの仕様によるケースが多いように感じます。
    まず前提条件として、さくらのレンタルサーバの場合、常時SSL化の際.にhtaccessに記述すべきリダイレクトの内容はほかのレンタルサーバと異なります。

    詳細はさくらインターネットのこちらのサポートページに記載があります。
    https://help.sakura.ad.jp/hc/ja/articles/115000047641–WordPress-%E5%B8%B8%E6%99%82SSL%E5%8C%96%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9

    このプラグインが書き込む内容と同じ内容を自分で.htaccessに書いてもよいのですが、まずHTTP→HTTPSへの正規化部分が正常に動いているかを確認してみてください。

    次にwwwありなしの正規化ですが、ここはさくらのレンタルサーバのドメイン設定で「マルチドメインとして使用する(推奨)」になっていると仮定します。(以前は、wwwを付与せずマルチドメインとして使用する設定にしないといけない時があったのですが今は大丈夫です)

    そのドメイン上にWordPressのコンテンツしか置いてない場合は、wwwなしでアクセスしても自動でwwwありにリダイレクトされるはずなので自分で正規化の記述は入れなくても大丈夫です。
    (※訂正: 自動ではされないですね。すみません。)

    他に静的コンテンツも置いてあるなどの理由でwwwありへの正規化の記述が必要な場合は、.htaccessの一番上ではなくさくらHTTPS正規化用の記述の下に置くなどしてみてはどうでしょうか。(自分の環境ではそれで問題なく動作しています)

    のむらけいさん、回答ありがとうございます!

    常時SSL化で、ログインできました♪

    現在、www.ありとwww.なしで、それぞれ表示されます。
    WordPressしか置いていないのですが、リダイレクトされないです。

    http://www.ありだけで運営したいです。

    >マルチドメインとして使用する(推奨)
    の設定になっていますが、これは始めからwww.ありで登録するべきだったのでしょうか?

    また、「さくらHTTPS正規化用の記述の下」というのは、
    .htaccessのどこの部分でしょうか?

    よろしくお願いいたします。

    モデレーター のむらけい

    (@mypacecreator)

    あ、いやさくらのコンパネでドメインを登録する際は通常wwwはなしでよいと思います。

    さくらの常時SSL化プラグインで正しくHTTPSで動作している場合、htaccessの記述は以下のようになっていると思います。

    
    # BEGIN Force SSL for SAKURA
    # RewriteしてもHTTPS環境変数を有効にする
    SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1
    
    # 常時HTTPS化(HTTPSが無効な場合リダイレクト)
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{ENV:HTTPS} !on
    RewriteCond %{REQUEST_URI} !/wp-cron\.php$
    RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    </IfModule>
    # END Force SSL for SAKURA
    
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    
    # END WordPress

    で、私の環境では
    # END Force SSL for SAKURA

    # BEGIN WordPress
    の間にwwwありに正規化する記述を入れて正しくwwwにリダイレクトされています。

    返信ありがとうございます!

    # END Force SSL for SAKURA

    # BEGIN WordPress
    の間に

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(〇〇\.com)$ [NC]
    RewriteRule (.*) http://www.〇〇.com%{REQUEST_URI} [R=301,L]
    (〇〇にドメイン名)

    を記述してアップロードすると、
    https://gyazo.com/bd8053fbbb8db92731e9404968e22b60
    のような画面になり、パスを入れても通らなくなります。

    これは、どんな原因が考えられるでしょうか?

    モデレーター のむらけい

    (@mypacecreator)

    このコードだとリライト後、http://にリダイレクトされていますよ。
    https:// にしましょう。

    それと、リライト処理を変更した場合、前の内容がブラウザキャッシュとして残っている場合があります。
    キャッシュ削除するか別のブラウザで確認するとよいです。

    のむらけいさん、返信ありがとうございます!

    灯台下暗し、sが抜けていました。

    sを入れたら、ちゃんとしたログイン画面になりましたが、
    何度やっても、ログインできない状態です。

    .htaccessの

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(〇〇\.com)$ [NC]
    RewriteRule (.*) https://www.〇〇.com%{REQUEST_URI} [R=301,L]

    を外すと、ちゃんとログインできます。

    外すとログインできるため、上記の記述が悪いのかもしれないです。
    リダイレクトの記述が間違っていたりするでしょうか?

    モデレーター のむらけい

    (@mypacecreator)

    一応、こちらのさくらのレンタルサーバの環境で正しく動いているものは以下のようにしています。

    # BEGIN Force SSL for SAKURA
    # RewriteしてもHTTPS環境変数を有効にする
    SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1
    
    # 常時HTTPS化(HTTPSが無効な場合リダイレクト)
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{ENV:HTTPS} !on
    RewriteCond %{REQUEST_URI} !/wp-cron\.php$
    RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    </IfModule>
    # END Force SSL for SAKURA
    
    # Add www
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^example\.com$
    RewriteRule (.*) https://www.example.com/$1 [R=301,L]
    </IfModule>
    
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    
    # END WordPress

    ただ、@ryomk さんの記述方法で書いても問題なくログインできました。

    「ログインできない状態」というのがどういう理由なのかをもう少し分かると良いです。
    エラーメッセージが出るのか、真っ白になるのか。。。
    たとえばGoogle Chromeのデベロッパー・ツールでエラーステータスコードが何番なのかを調べたり、Redirect Pathという拡張機能を入れて、リダイレクトがどのように動いているかをチェックしたりしてみると良いと思います。

    何度も返信していただき、ありがとうございます!

    >「ログインできない状態」というのがどういう理由なのかをもう少し分かると良いです。

    それが、エラーメッセージなども出ないのです。
    画面も切り替わらず、一旦ユーザー名とパスが消えて、
    また、同じログイン画面になります。

    なんか、「弾かれている」みたいな感じです。

    .htaccessの内容は次の通りです。

    # BEGIN Force SSL for SAKURA
    # RewriteしてもHTTPS環境変数を有効にする
    SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1

    # 常時HTTPS化(HTTPSが無効な場合リダイレクト)
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{ENV:HTTPS} !on
    RewriteCond %{REQUEST_URI} !/wp-cron\.php$
    RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    </IfModule>
    # END Force SSL for SAKURA

    # BEGIN SAKURA Internet Inc.
    <IfModule mod_deflate.c>
    SetOutputFilter DEFLATE
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript
    </IfModule>
    <IfModule mod_expires.c>
    ExpiresActive On
    <FilesMatch “\.(css|js)$”>
    ExpiresDefault “access plus 1 week”
    </FilesMatch>
    <FilesMatch “\.(gif|jpe?g|png)$”>
    ExpiresDefault “access plus 1 month”
    </FilesMatch>
    </IfModule>
    # END SAKURA Internet Inc.

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(〇〇\.com)$ [NC]
    RewriteRule (.*) https://www.〇〇.com%{REQUEST_URI} [R=301,L]

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /naka/
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /naka/index.php [L]
    </IfModule>

    # END WordPress

    一旦、さくらサーバー関連のプラグイン以外を停止してみようと思いましたが、
    「Protect Uploads」というプラグインだけが、どうしても停止できないです。

    停止しようとすると、「このページは動作していません」と出ます。

    「Protect Uploads」の説明欄に、

    Protect your uploads directory. Avoid browsing of your uploads directory by adding a htaccess file or an index.php file.

    とあるため、これが干渉しているような気がします。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • このトピックに返信するにはログインが必要です。