今回はロリポップ(スタンダード)を使ってハマったお話です。
ちなみに、これはロリポップに限った話ではなく、ワードプレス全般の話です。
最初に正解を書いておきます。
ワードプレス wwwありなしの統一設定の正解はこれ!
ワードプレスを使ったサイトでは、.htaccessではなく、
wp-adminで設定>一般 WordPress アドレス (URL)にwwwを指定する
サイトアドレス (URL)も合わせて修正してください。
こんな簡単なことなんです、でも忘れたりしていると30分ぐらいハマります・・・
よくありがちな間違い
価格が安かったお名前COMで独自ドメインを取得して、
ロリポップで利用する設定をしました。
ここでは、例として、example.comというドメイン名にしています。
今回はワードプレスを使ったサイトにしようと「簡単インストール」で
さくさく!っと最新ワードプレス4.5.3をインストールしました。
インストール時に指定したドメインは、wwwなしの、example.comです。
「wwwあり」、www.example.comに統一するために、sshでログインして、.htaccessファイルを編集します。
BEGIN WordPressの前に以下のような感じで、
wwwが付いてなかったら、wwwをつけてリダイレクトするっていう設定を行います。
==========.htaccess ======
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(example\.com)(:80)? [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
# BEGIN WordPress
RewriteEngine On
RewriteBase /
・・・
==========.htaccess ======
で、これでアクセスすると
chrome
www.example.com ページは機能していません
www.example.com でリダイレクトが繰り返し行われました。
アクセスできない状況に陥ります。
でも、これってネットでhtacess www統一などのキーワードで探すと見つかる一般的な設定です
よくありがちなhtaccessの間違い www統一設定をデバッグする
RewriteLog フルパス
RewriteLogLevel 99
などで、mod_rewriteの挙動をログファイルに出力することができます。
この設定は、htaccessに指定します。
でも、一般的なレンタルサーバー、ここではロリポップでは指定できない項目になります。
(サーバー側のエラーになります)
「リダイレクトが繰り返し行われました。」とかのエラーが発生している場合は、
少なくともhtaccessに指定した内容を理解できていることになります。
このエラーは、クライアント側(自分のPC側)で判断された内容です。
ログファイルが使えない場合、有効なデバッグ方法の一つとして直接httpアクセスしてみる方法があります。
そのコマンドは、curlです。
-vオプションを指定すると詳細な挙動を確認できます。
% curl -v example.com
↓↓↓↓↓↓ リクエスト
* Rebuilt URL to: example.com/
* Trying 157.7.999.999...
* Connected to example.com(157.7.999.999) port 80 (#0)
> GET / HTTP/1.1
> Host: example.com
> User-Agent: curl/7.43.0
> Accept: */*
↑↑↑↑↑↑ リクエスト
↓↓↓↓↓↓ レスポンス
>
< HTTP/1.1 301 Moved Permanently
< Date: Thu, 21 Jul 2016 08:02:23 GMT
< Server: Apache
< Location: http://www.example.com/
< Content-Length: 240
< Content-Type: text/html; charset=iso-8859-1
<
↑↑↑↑↑↑ レスポンス
↓↓↓↓↓↓ レスポンスボディ
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.example.com/">here</a>.</p>
</body></html>
↑↑↑↑↑↑ レスポンスボディ
簡単に説明すると、リクエスト、レスポンス、レスポンスボディの3つの情報がわかります。
example.comにアクセス(リクエスト)、
その結果HTTP/1.1 301 Moved Permanently、301 リダイレクトで、移動先(location)はwww.example.comになります。
locationで移動してくれないブラウザのために、hereリンクのHTMLを出力してくれていることがわかります。
ここまでの動作は、予定通り、正しい流れですよね。
次に、リダイレクト先のwww.example.comで確認してみます。
% curl -v www.example.com
* Rebuilt URL to: www.example.com/
* Trying 157.7.999.999...
* Connected to www.example.com (157.7.999.999) port 80 (#0)
> GET / HTTP/1.1
> Host: www.example.com
> User-Agent: curl/7.43.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Date: Thu, 21 Jul 2016 08:03:22 GMT
< Server: Apache
< X-Powered-By: PHP/5.6.21
< Location: http://example.com/
< Content-Length: 0
< Content-Type: text/html; charset=UTF-8
<
* Connection #0 to host www.example.com left intact
www.example.comにアクセスすると、example.comに移動しましたっていう結果になります。
「リダイレクトが繰り返し行われました。」本当に起きています。
example.com => www.example.com =>example.com =>・・・・
という感じで繰り返されていることがわかりました。
まとめ
正解は、htaccessに指定してはいけなかったです。
ワードプレスサイトでは、
wp-adminで設定>一般 WordPress アドレス (URL)にwwwを指定する
が正解です。htaccessで指定する必要はありません。
今回使っているサーバーは、ロリポップスタンダードです。
月額500円でsshログインもできちゃうサーバーなので、bash使える方は簡単に設定できます。
月額500円より安いライトプランでもワードプレスが使えます。
MySQLが1つしか使えなくても、ワードプレスは1つのMySQLに複数インストールできちゃいます。
マルチドメイン50個まで対応しているので、最大50個のサイトも作れますよ。
ライトプランはsshが使えません、またphpが高速に動くモジュール版も使えません。
もうちょい速いの!って思ったらスタンダードが鉄板だと思います。
- 初期費用0円(2022年8月4日に撤廃)
- 安定したサイト運営が可能(CPU/メモリ リソース保証 6コア/8GB〜)
- 契約中は独自ドメインつき 独自ドメイン永久無料特典があります
- 最大10日間無料で、サーバーのお試し利用ができます
- ディスクキャッシュも高速 NVMe SSDを採用(300GB〜)
- 大量アクセスでも安心 転送量は無制限
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image