MENU
はっち
30代の2児のパパ。上場企業のWebマーケティング部署にて累計1,000以上のSEO施策を実行。SEO対策のセカンドオピニオンとして、躍動中。伴走型のコンサルも並行しています。

【コピペOK】.htaccessの記述あり!Basic認証・正規化・リダイレクト設定!

htaccessの取扱方法

SEOで注意したいことの一つとして、見た目が同じでもURLが微妙に異なっていたら別ページと判断されるということ!

https、https、wwwのあり・なしの問題は非常に重要になります。

書いてあること

重複URL(コンテンツ)と見なされる一例

  • http://exapmle.com
  • http://exapmle.com/index.html(php)
  • http://www.exapmle.com
  • http://www.exapmle.com/index.html(php)
  • https://exapmle.com
  • https://exapmle.com/index.html
  • https://www.exapmle.com
  • https://www.exapmle.com/index.html(php)

上記のように8つのURLがそれぞれ存在していた場合、別々のページとして取り扱ってしまうんですね。

はっち

ユーザーの目線からすればURLが少しずつ異なっていても表示されるサイトには変化がないことがあります。(むしろほぼない)

Googleは重複ページを嫌うので、仮に1つのページを作っているつもりであったとしても複数ページが存在するとGoogleは低評価として判断する可能性が非常に高いです。

こういった現象を防ぐためには、.htaccessを活用したリダイレクト手法によって問題を解決することができます。

.htaccessとは

リダイレクト処理に使用するファイルは、.htaccess(どっとえいちてぃーあくせす)です!

.htaccessとは、Apacheが使用されているサーバー環境で動き、Webサーバーをディレクトリ単位で制御するためのファイルを指します。.htaccessは主にベーシック認証(アイディーパスワードを入力する制限付きページ)、リダイレクト、カスタム404ページ等で使用されることが一般的。

先に言っておきますが、この.htsccessは取り扱いに細心の注意が必要なファイルです。

サーバー内に「間違った記述をした状態でポイッチョ(設置)するとサイトが表示されなくなる」という問題が生じることがあります。

はっち

そのため、作業前には、必ずバックアップをとるようにしましょう!

WordPressのphpファイルを触ったことがある方なら分かると思いますが、失敗すると画面が真っ白になるエラーが表示されます。

すぐ戻せるようにしないと取り返しのつかないことになります。

http→httpsへの正規化(wwwありver)

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(●●\.com)(:80)? [NC]
RewriteRule ^(.*) https://www.●●.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ https://www.●●.com/$1 [R=301,L]
order deny,allow
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

http→httpsへの正規化(wwwなしver)

RewriteEngine on RewriteCond %{HTTP_HOST} ^(●●\.com)(:80)? [NC]
RewriteRule ^(.*) https://●●.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ https://●●.com/$1 [R=301,L]
order deny,allow RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

index.htmlなしへリダイレクト

RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ https://example.com/$1 [R=301,L]

index.phpの場合は、htmlの部分をphpに変更しましょう。なお、Wordpressの場合はこの設定は不要です。

ベーシック認証を設定する方法

Webサイトにベーシック認証をかけるためには、2つのファイルが必要です。

  1. .htaccess
  2. .htpasswd

一見難しそうに見えますが、慣れれば大して難しくありません。

繰り返しますが、設定に失敗するとエラーとなるので必ずバックアップを取りましょう。

.htaccessへの記述方法

まず、.htaccessへの下記内容を追記します。

#ベーシック認証
AuthType Basic
AuthName "Enter Your ID and Pass"
AuthUserFile /サーバーのフォルダパス/.htpasswd
require valid-user

AuthNameには、今回の認証名を任意で指定します。ダブルクォートで囲むのを忘れずにしましょう。

日本語を入力すると文字化けする可能性があるため、英字を入力しましょう。

最も重要な点が、下記の「サーバーのフォルダパス」という場所です。

利用しているサーバーや.htaccessの設置場所によりますが、Xサーバーを利用している場合、下記のような記述となります。

AuthUserFile /home/[サーバーID]/example.com(あなたのサイトのドメイン)/public_html/.htpasswd

.htpasswdの作成および記述方法

ベーシック認証をかける場合のIDとパスワードを記述しておくファイルが、「.htpasswd」です。

作成方法は至って簡単で、テキストエディタやメモ帳で作成可能なので安心です。

ただし、パスワードは安易に記述すると情報漏洩に繋がるので暗号化した記述を記載しましょう。

使用するサイトは、パスワード生成ツールを使います。

アクセス後、IDとパスワードを記入し「生成」ボタンを押すと、暗号化されたテキストが表示されます。

暗号化されている

生成されたテキストをコピーして、テキストエディタもしくはメモ帳にて「.htpasswd」というファイル名で保存します。

ベタ貼りでOK

実際に検証してみる

.htaccessと.htpasswdの記述がしっかりと接続ができれば、対象URLもしくはディレクトリにベーシック認証が実装されます。

ユーザー名にIDを、パスワードにPasswordを入力

それぞれに、設定したIDとパスワードを入力すれば無事にWebページが表示されます。

まとめ

リダイレクト処理したい場合は、一括で変更できるのでめちゃくちゃ助かります。

しかし、.htaccessは便利なファイルである一方、ちょっとしたミスも許されない危険なファイルでもあります。

できればテスト環境で実装すれば良いのですが、直本番環境を修正する場合は本当にご注意ください!

カニバリの原因!重複コンテンツを排除するURLの正規化方法
よかったらシェアしてね!
  • URLをコピーしました!
書いてあること