初めてのワードプレス(19).htaccessで出来るSEOとセキュリティ対策

9月中旬、堅田内湖の夕暮れ(本堅田4丁目から今堅田1丁目方面を望む)

今回は.htaccessで出来るSEOとセキュリティ対策です。

.htaccessを使うことでサーバー側での圧縮や、キャッシュの設定、Javascriptの読み込み遅延といったSEO対策(高速化)を行うことができます。

また、.htaccessファイルを外部から見えないようにしたり、ログイン画面等へのアクセス制限といったセキュリティに関わる設定を行うことができます。

.htaccessで出来る盗用対策(画像の直リンク禁止と自動コピーサイト作成阻止法)については第15回で掲載しています。

 

写真:「9月中旬、堅田内湖の夕暮れ(前編) ~Honkatata/本堅田 438」(2011年9月掲載)より、「9月中旬、堅田内湖の夕暮れ(本堅田4丁目から今堅田1丁目方面を望む)」、撮影地:滋賀県大津市本堅田

 

目次
1..htaccessとは
2.サーバー側でのコンテンツ圧縮
3.キャッシュの設定・Javascriptの読み込み遅延
4.ログイン画面等にアクセス制限をかける方法

 

1. .htaccessとは

.htaccess(エイチティアクセス)とは一言で言うと、サーバーを制御するファイルのことです。ここではレンタルサーバー各社のヘルプページへのリンクを掲載しておきますね。

 

◆設置場所:WordPressをインストールしたルートフォルダ(例えばwp)を開き、.htaccessファイルに追記して下さい。
root-folder

.htaccessファイルの作成方法とアップロード方法は、下記記事で掲載しています。
初めてのワードプレス(10).htaccess/TeraPad/FTPソフト

 

2.サーバー側でのコンテンツ圧縮

Apache(アパッチ)と呼ばれる、世界中で最もよく使用されているWebサーバーソフトウェアがあります。Apacheの機能は、核となる機能「Core」にモジュールと呼ばれる単位を追加することで拡張できますが、その一つにmod_deflateがあります。

Apacheのmod_deflateが使えるサーバーでは、以下のコードでコンテンツを圧縮することができます。大半のレンタルサーバーはmod_deflateに対応しています。

<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png|ico)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI _.utxt$ no-gzip
#DeflateCompressionLevel 4
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
</IfModule>

ソース参考:http://oxynotes.com/?p=6519

 

3.キャッシュの設定・Javascriptの読み込み遅延

キャッシュの設定

ブラウザキャッシュ(Internet Explorerで言えばインターネット一時ファイル)の設定をすることで、設定した期間内での二回目以降のアクセスは、サーバーではなくブラウザキャッシュから読み込むようにすることができます。

保存期間の数字は任意に変更できますので、サイトの更新間隔に合わせて適宜変更して下さい。

ただし1年以上の指定は規約違反になるとのことですので、ご注意下さい。(http://www.02320.net/tech/htaccess_cache_settings/

<IfModule mod_deflate.c>
ExpiresActive On
ExpiresByType image/jpg "access 3 days"
ExpiresByType image/jpeg "access 3 days"
ExpiresByType image/gif "access 3 days"
ExpiresByType image/png "access 3 days"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 3 days"
ExpiresDefault "access 1 month"
</IfModule>

ソース参考:https://urashita.com/archives/671

 

Javascriptの読み込みを遅延させる

ブラウザがページを読み込む際に、外部JavaScript のファイルが読み込まれるまでページ読み込みを待機しているため、ページ読み込み(レンダリング)が遅くなっている(ブロックされている)ことがあります。これを緩和する方法です。

# Defer parsing of Javascript
<FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|js|css|pdf)$">
ExpiresActive On
ExpiresDefault A2592000
</FilesMatch>
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
</IfModule>

ソース参考:https://urashita.com/archives/671

 

4.ログイン画面等にアクセス制限をかける方法

.htaccessファイルを保護

.htaccessファイル自体へのアクセスを拒否します。
参考(海外サイト):https://esthetig.com/securing-your-website/

# STRONG HTACCESS PROTECTION
<Files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</Files>

 

 wp-config.php, wp-mail.php, install.php へのアクセスを拒否

wp-config.php ファイルは、MySQL データベースへの接続情報などサイトの基礎となる詳細な構成情報を含む重要なファイルです。wp-mail.php ファイルはWordPressのメール投稿機能を、install.php ファイルはインストール機能に関わる重要なファイルです。外部からのアクセスを拒否するように設定します。

<FilesMatch "^(wp-config.php|wp-mail.php|install.php|.ht)">
order allow,deny
deny from all
</FilesMatch>

 

 ログイン画面にアクセス制限、プロバイダ は許可

<Files wp-login.php>
order deny,allow
deny from all
allow from 192.0.64.0/18 ←プロバイダーのIPアドレス
</Files>

 

 XML-RPC にアクセス制限、Automattic は許可

xmlrpc とは、スマートフォンアプリや外部システムから、リモートで記事投稿や画像のアップロードを行う際に利用されるプロトコルです。http://support.mngsv.jp/info/news/1429/

DDoS攻撃、ブルートフォースアタックの対象にされてしまう危険性があるため、アクセス制限を行います。Jetpack(プラグイン)などホワイトリストに載せたいものがあるため、以下のサイトを参考にさせていただきました。

参考:http://beadored.com/xml-rpc-htaccess-deny-allow/
参考:http://rfs.jp/sb/wordpress/wp-lab/xmlrpc-php-ddos.html

<Files "xmlrpc.php">
order deny,allow
deny from all
# whitelist jetpack
# host Automattic inc
Allow from 192.0.64.0/18 ←プロバイダーのIPアドレス
</Files>

◆プロバイダのIPアドレスの調べ方

下記サイトを参考にして下さい。
http://viral-community.com/security/mypc-access-ok-2027/

 


 

次回(第20回/最終回)は、今後の注意点(バックアップの方法・PHPのバージョン確認・パーミッションとは・データベース接続確立エラー等)について掲載します。

 


◆初めてのワードプレス(全20回)目次

1)独自ドメイン取得
2)レンタルサーバーの選び方(必要な条件やスペックを考えてみた)

3)サーバーを借りた後、何をどうすればいいか(手順)
4)WordPressをインストールする

5)Edit Author Slugでユーザー名を非表示にする
6)メンテナンス中表示にするComing Soon Page & Maintenance Mode by SeedProd

7)高機能プラグインJetpackの設定方法
8)Akismet Anti-Spamの設定とAPIキー取得方法

9)ワードプレスの設定とテーマの変更・カスタマイズ
10).htaccess/TeraPad/FTPソフト

11)WordPressをドメイン直下に表示する方法
12)固定ページの作り方/レイアウト/メニュー表示(問い合わせページを例に)

13)WordPressを使った写真ブログの作り方
14)訪問者に配慮しつつ画像文章の盗用対策になるプラグイン3選

15)画像の直リンク禁止と自動コピーサイト作成阻止法(.htaccessで出来る盗用対策)
16)検索に表示したくない画像がある場合の対処法(robots.txtの作成と設置方法)

17)検索エンジンに登録する方法(XMLサイトマップとGoogle Search Console活用法)
18)入れておくといい基本的プラグイン20選

19)圧縮とキャッシュの設定、ログイン画面にアクセス制限をする(.htaccessで出来るSEOとセキュリティ対策)(今回)

20)今後の注意点6選(更新・PHPバージョン・バックアップ・パーミッション変更・WordPressの基本形・データベース接続確立エラー)

 

◆番外編(画像4600枚超える写真ブログ、10年目の試行錯誤)

写真ブログの画像だけMixHostから別サーバー(スターサーバー)に移してみました(2017/9/5)

スターサーバーで無料の独自SSLを設定した手順(ネットオウル提供のサブドメインでも可能)(2017/9/5)

レンタルサーバーの話(2017年夏):ロリポップ!無料独自SSL対応、エックスサーバーSSD採用、そしてスターサーバー統合(2017/8/11)

写真サイトに使えそうな新しい独自ドメインが次々登場~.camera.photoから.studioまで(2017/7/3)

10年続く写真ブログ、サーバーをファイアバードからmixhostへお試し移転中です(2017/6/30)

 

◆無料ブログからワードプレスへの移転(無料ブログ側の設定)

無料ブログからWordPressへの確実な引越し~リダイレクトできない無料ブログで行った3つのこと

 

にほんブログ村 写真ブログ 地域の歴史文化写真へ にほんブログ村

滋賀県ランキング



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)