.htaccessがある場所 設定方法 書き方【初心者向け】

スポンサーリンク

 

「.htaccess(エイチティーアクセス)」を編集することでウェブサーバーの挙動を制御することができます

主にこのような設定ができます。

  • リダイレクト
  • Basic認証。IDとパスワードを指定してWebサイトへのアクセスを制限
  • IPアドレスのアクセスを制限
  • セキュリティ。ファイルを守る

 

.htaccessがある場所

エックスサーバーの場合はここにあります。

サイト/public_html/.htaccess

 

開き方

FTP、ファイルマネージャーの2通り。

1.FTPソフト

.htaccessファイルをサクラエディタなどで開き、編集したらFTPソフトで上書きします。

➡【FTPソフト】FileZillaのインストール&接続方法

2.ファイルマネージャー

ファイルマネージャーにログインします。

.htaccessにチェックをしたら、右横にある「編集」ボタンをクリック→追記→「保存する」

3.エックスサーバー

エックスサーバーの場合は、FTPで上書きすると文字化けすることがあるので、サーバーから設定した方が無難です。

設定対象ドメインを選択したら、ホームページ項目にある「.htaccess編集」→コードを追記したら右下にある「確認画面へ進む」→次の画面で「実行する」をクリックします。

 

バックアップ

.htaccessは、1文字間違えただけでサイトが真っ白になったり、アクセスできなくなります。

設定する前に、FTPソフトやサーバーから.htaccessファイルをバックアップしておくと安心です。

➡【FTPソフト】FileZillaのインストール&接続方法

 

基本.htaccess

WordPressをインストールした直後の.htaccessは、削除しないようにします。

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

 

記述方法

# BEGIN WordPressより上に追記します。良く分からない場合は冒頭に追記すると良いです。

冒頭に # がある行はコメントです。コメントを日本語で書くとエラーになったり、文字化けをする場合があるので半角英数字を使います。

尚、# BEGIN WordPressから# END WordPressの間はWordPressのための設定場所になり、プラグインなどで自動的に書き換えられる場合があります。

スポンサーリンク

 

.htaccessを整理して高速化

追記を繰り返した結果、重複コンテンツがありましたので整理しました。

まずは、以前に使っていた「テーマを高速化するためのコード」を削除しました。

➡Simplicityなど

 

また、プラグインを追加すると自動的に書き加えられる場合がありますが、「EWWW Image Optimizer」は現在は使っていないので削除しました。

# BEGIN EWWWIO
# END EWWWIO

この作業でサイトの読み込みが早くなった

参照➡.htaccessに2000行書くとApacheの処理が何秒遅くなるか測ってみた Web担当者Forum

 

リダイレクト

➡.htaccessでhttpからhttpsへ301リダイレクトする方法

 

ファイルを保護

wp-config、error_log、php.ini、htaccess/htpasswdファイルへのアクセスを拒否します。

# NO access File
<FilesMatch "^.(error_log|wp-config.php|php.ini|.[hH][tT][aApP].)$">
Order deny,allow
Deny from all
</FilesMatch>

➡参照 WordPress.org 日本語

 

直リンクを防ぐ

➡.htaccessを編集して直リンクを禁止!

スポンサーリンク

 

ユーザー名を隠す

.htaccessにこのように追記しておくと、「サイトURL/?author=1」でアクセスされた場合、ユーザー名は表示されずトップページにリダイレクトします。

# Redirect username
RewriteEngine On
RewriteRule ^\?author=(.*)? / [R=302,L]
RewriteRule ^author/(.*)? / [R=302,L]
.htaccessを触りたくない場合はプラグインEdit Author Slugが良いかと

 

エックスサーバーで自動的に追記

セキュリティー高速化の設定時に、自動的に追記される.htaccess環境変数があります。

大量コメント・トラックバック制限をOFFにすると自動的に追記。

SetEnvIf Request_URI ".*" WpCommentNoLimit

 

国外IPアドレスからのコメント・トラックバック制限をONにすると自動的に追記。

SetEnvIf Request_URI ".*" WpCommentDeny

 

Xアクセラレータ(Webサイトを高速・安定化させるための機能)を設定すると、自動的に追記されます。尚、サーバーキャッシュ設定を有効にすることでXアクセラレータが有効になります。

SetEnvIf Request_URI ".*" Ngx_Cache_NoCacheMode=off
SetEnvIf Request_URI ".*" Ngx_Cache_StaticMode

 

.htaccess完成

# Redirect username
RewriteEngine On
RewriteRule ^\?author=(.*)? / [R=302,L]
RewriteRule ^author/(.*)? / [R=302,L]
# NO direct link
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?zbnr-hp\.com [NC]
RewriteCond %{HTTP_REFERER} !google. [NC]
RewriteCond %{HTTP_REFERER} !search?q=cache [NC]
RewriteCond %{HTTP_REFERER} !bing. [NC]
RewriteCond %{HTTP_REFERER} !yahoo. [NC]
RewriteCond %{HTTP_REFERER} !msn. [NC]
RewriteRule .(jpg|png|jpeg|gif|svg|js|css)$ &#8211; [NC,F,L]
# NO access File
<FilesMatch "^.(error_log|wp-config.php|php.ini|.[hH][tT][aApP].)$">
Order deny,allow
Deny from all
</FilesMatch>
# Redirect
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# 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
SetEnvIf Request_URI ".*" WpCommentNoLimit
SetEnvIf Request_URI ".*" WpCommentDeny
SetEnvIf Request_URI ".*" Ngx_Cache_NoCacheMode=off
SetEnvIf Request_URI ".*" Ngx_Cache_AllCacheMode

最終の行は空行にします

タイトルとURLをコピーしました