.htaccessの設定と設置方法

.htaccessとは?設定と設置方法
エイチティアクセス

Webサイトで使われる.htaccess(エイチティアクセス)とは?検索エンジンに正しくホームページを伝える為にキャッシュの設定や正規化、リダイレクトの設定方法を紹介します。

.htaccessとは?

htaccess設定

.htaccess(エイチティアクセス)とはウェブサーバの設定ファイルとしてURLの正規化、キャッシュの設定、リダイレクトの設定等を検索エンジンに正しく伝えることができます。

きちんと設定していないと検索順位に影響を与えます。

検索順位に影響する要因
  • 正規化を行っていない為ドメイン評価が分かれてしまっている
  • リダイレクト設定をしていない為ページを開くとエラーページが表示される
  • キャッシュの設定を行っていない為読み込み速度が遅く直帰率が高く滞在時間が短い

.htaccessファイルの作成

.htaccessファイルはトップページがおいてある階層に配置します。

htaccessファイルの作成

作り方ですが、.htaccessファイルをローカルで作成する際名前が保存できなく作成できません。その為まず初めにhtaccess.txtでテキストファイルを作成し、FTPでアップロードしたあとサーバ側のhtaccess.txtを.htaccessに変更してローカルにダウンロードして下さい。

.htaccessファイル作成手順
  • ローカルでhtaccess.txt作成
  • サーバにそのままアップロード
  • サーバ側のhtaccess.txtを右クリックし名前変更「.htaccess」
  • 次から手間をなくす為サーバ側の「.htaccess」を右クリックしてダウンロード

空の.htaccessが作成できたら処理を書いていきます。

URLの正規化

URLの正規化

URLは「www」の有無、末尾の「/」の有無合計4パターン存在します。

URLのパターン
  • http://www.test.jp/
  • http://test.jp/
  • http://www.test.jp
  • http://test.jp

検索エンジンからの評価が分かれてしまわないよう正規化を行う.htaccessの書き方は以下のようになります。

拡張子がphpの場合は2行目と3行目のhtmlをphpに変更して下さい。

トップレベルドメインがcomの場合3行目のjpをcomに変更して下さい。

test.jpはサンプルですので変更して下さい。

http://www.test.jp/で正規化する場合

  1. RewriteEngine on
  2. RewriteCond %{THE_REQUEST} ^.*/index.html
  3. RewriteRule ^(.*)index.html$ http://www.test.jp/$1 [R=301,L]

WWWなしで正規化する場合

  1. RewriteEngine on
  2. RewriteCond %{THE_REQUEST} ^.*/index.html
  3. RewriteRule ^(.*)index.html$ http://test.jp/$1 [R=301,L]

WWWありのスラッシュなしで正規化する場合

  1. RewriteEngine on
  2. RewriteCond %{THE_REQUEST} ^.*/index.html
  3. RewriteRule ^(.*)index.html$ http://www.test.jp$1 [R=301,L]

WWWなしのスラッシュなしで正規化する場合

  1. RewriteEngine on
  2. RewriteCond %{THE_REQUEST} ^.*/index.html
  3. RewriteRule ^(.*)index.html$ http://test.jp$1 [R=301,L]

どれも同じと思うかも知れませんがURLを正規化しないとサイト評価が悪くなります。

それは、ページの評価が分散されてしまうからです。

実際には一番目と二番目のURLの場合ページの内容は同じでも別のページという認識をされます。

別のページということはミラーサイトではないか?とクローラーから疑われます。

SEOの分野の内容に少し入ってしまいますが、ミラーサイトはサイトの評価をおとす要因でもあります。

サイトの評価が落ちれば検索順位もおちる可能性が非常に高いです。

サイトの評価が下がる要因は1つでも減らすことに越したことはありません。

その為、URLの正規を.htaccessで設定することは非常に重要です。

キャッシュの設定

キャッシュの設定

ホームページの画像やJavascriptのキャッシュの設定を行うことによりページの読み込み速度を速くすることができます。

ページの読み込み速度を速くすることでお客様にストレスを与えないだけでなく、検索順位にも影響すると言われています。

画像は特にページの表示速度に影響してくるほど容量を消費します。

必ずと言っていいほどhtaccessの設定にキャッシュの設定をすることをオススメします。

キャッシュの記述方法

特殊なファイルでない限り下記の記述でキャッシュの設定および圧縮を有効にすることができます。

  1. AddOutputFilterByType DEFLATE text/html text/css application/x-javascript application/javascript text/javascript
  2. ## EXPIRES CACHING ##
  3. <IfModule mod_expires.c>
  4. ExpiresActive On
  5. ExpiresByType image/jpg "access plus 1 week"
  6. ExpiresByType image/jpeg "access plus 1 week"
  7. ExpiresByType image/gif "access plus 1 week"
  8. ExpiresByType image/png "access plus 1 week"
  9. ExpiresByType text/css "access plus 1 week"
  10. ExpiresByType application/x-javascript "access plus 1 week"
  11. ExpiresByType text/javascript "access plus 1 week"
  12. ExpiresByType application/javascript "access plus 1 week"
  13. </IfModule>
  14. ## EXPIRES CACHING ##
  15. # 圧縮を有効
  16. AddOutputFilterByType DEFLATE text/plain
  17. AddOutputFilterByType DEFLATE text/html
  18. AddOutputFilterByType DEFLATE text/xml
  19. AddOutputFilterByType DEFLATE text/css
  20. AddOutputFilterByType DEFLATE application/xml
  21. AddOutputFilterByType DEFLATE application/xhtml+xml
  22. AddOutputFilterByType DEFLATE application/rss+xml
  23. AddOutputFilterByType DEFLATE application/javascript
  24. AddOutputFilterByType DEFLATE application/x-javascript
  25. AddOutputFilterByType DEFLATE application/widgets.js

リダイレクトの設定

リダイレクトの設定

リダイレクトの設定ではページの変更、ドメインの変更の際に再度1から出発するというよりは、今まで蓄積された評価を移行先のページに受け継ぐことを行うことができます。

またブックマークしてくれた方がページを開いた時に表示されないといったことを防ぐにも.htaccessに元のファイル名と移行先のファイル名を記述して301リダイレクト処理を行い移行先のページへ自動的に遷移してくれます。

ディレクトリごとまとめてリダイレクト

homepageのディレクトリにあるファイル全てweb/homepageにリダイレクトしたい場合

  1. RewriteRule ^homepage/(.*)$ /web/homepage/$1 [R=301,L]

ページ単体のリダイレクト

homepage/createファイルをweb/homepage/createにリダイレクトしたい場合

  1. Redirect 301 /homepage/create/ https://9box.jp/web/homepage/create/

クエリを使ったページのリダイレクト

car.php?c_id=0101をcarlist/car.php?c_id=0101にリダイレクトしたい場合

  1. RewriteCond %{QUERY_STRING} ^([=&-a-zA-z0-9]*)/?$
  2. RewriteRule ^car.php?$ /carlist/car?%1 [R=301,L]
PAGE TOP