Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPBカップ
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

WordPressで最も便利な12の.htaccessトリック

サイトの.htaccessファイルを編集することは、WordPress初心者には敷居が高く聞こえるかもしれません。しかし私たちの経験では、.htaccessはサイトのパフォーマンス、セキュリティ、SEOを向上させるツールです。

このファイルは、コーディングのウィザードでなくても、サイトのサーバー設定を微調整するためのコントロールパネルと考えることができます。

この投稿では、WordPressの便利な.htaccessのトリックをいくつかご紹介します。

Most Useful .htaccess Tricks for WordPress

.htaccessファイルとは何ですか?

.htaccessファイルは、Apacheウェブサーバー設定ファイルです。WordPressサイトでサーバーが従うべきルールを定義するためのテキストファイルです。

WordPressは.htaccessファイルを使ってSEOに適したURL構造を生成します。しかし、このファイルはパーマリンクの設定を保存するだけではありません。

.htaccessファイルはWordPressサイトのルートフォルダにあります。編集するには、FTPクライアントまたはcPanelファイルマネージャを使用してサイトに接続する必要があります。

.htaccess file on a WordPress site

.htaccessファイルが見つからない場合は、WordPressで.htaccessファイルを見つける方法をご覧ください。

.htaccessファイルを編集する前に、バックアップとしてそのコピーをコンピューターにダウンロードしておくことが重要です。万が一何か問題が発生した場合に、そのファイルを使用することができます。

とはいえ、WordPressで使える便利な.htaccessのトリックを見てみましょう:

1.WordPress管理エリアの保護

.htaccessを使用して、特定のIPアドレスのみにアクセスを制限することで、WordPress管理エリアを保護することができます。

このコードスニペットをコピー&ペーストして.htaccessファイルに貼り付けるだけです:

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
# whitelist Syed's IP address
allow from xx.xx.xx.xxx
# whitelist David's IP address
allow from xx.xx.xx.xxx
</LIMIT>

xxの値を自分のIPアドレスに置き換えることをお忘れなく。インターネットにアクセスするために複数のIPアドレスを使用している場合は、それらのIPアドレスも追加してください。

詳しい手順は、.htaccessを使ってWordPress管理画面へのアクセスを制限する方法をご覧ください。

2.WordPress管理フォルダーをパスワードで保護する

Password protect WordPress admin directory

公共のインターネットスポットを含む複数の場所からWordPressサイトにアクセスする場合、特定のIPアドレスへのアクセスを制限してもうまくいかないことがあります。

.htaccessファイルを使用して、WordPress管理エリアにパスワード保護を追加することができます。

まず、.htpasswdsファイルを生成する必要があります。このオンラインジェネレータを使えば簡単に作成できます。

この.htpasswdsファイルを、一般にアクセス可能なウェブディレクトリまたは/public_html/フォルダーの外にアップロードしてください。良いパスは

/home/ユーザー/.htpasswds/public_html/wp-admin/passwd/。

次に、.htaccessファイルを作成して/wp-admin/ディレクトリにアップロードし、そこに以下のコードを追加する:

AuthName "Admins Only"
AuthUserFile /home/yourdirectory/.htpasswds/public_html/wp-admin/passwd
AuthGroupFile /dev/null
AuthType basic
require user putyourusernamehere
<Files admin-ajax.php>
Order allow,deny
Allow from all
Satisfy any
</Files>

重要: AuthUserFileのパスを.htpasswdsファイルのパスに置き換えて、ユーザー名を追加することを忘れないでください。

詳しい手順については、WordPressの管理フォルダーをパスワードで保護する方法をご覧ください。

3.ディレクトリ閲覧無効化

Disable directory browsing

WordPressのセキュリティ専門家の多くは、ディレクトリ・ブラウジングを無効化することを推奨しています。ディレクトリ閲覧を有効化すると、ハッカーはサイトのディレクトリやファイル構造を調べて脆弱なファイルを見つけることができます。

サイトでディレクトリ閲覧を無効化するには、.htaccessファイルに以下の行を追加する必要があります:

Options -Indexes

このトピックについては、WordPressでディレクトリ閲覧を無効化する方法をご覧ください。

4.WordPressの一部のディレクトリでPHPの実行を無効化する

ハッカーがWordPressサイトに侵入し、バックドアをインストールすることがあります。これらのバックドア・ファイルは、WordPressのコア・ファイルに偽装されていることが多く、/wp-includes/または/wp-content/uploads/フォルダに置かれています。

WordPressのセキュリティを向上させる簡単な方法は、WordPressディレクトリのPHP実行を無効化することです。

コンピューター上に空白の.htaccessファイルを作成し、その中に以下のコードを貼り付ける必要があります:

<Files *.php>
deny from all
</Files>

ファイルを保存し、/wp-content/uploads/と /wp-includes/ディレクトリにアップロードします。

詳しくは、WordPressの特定のディレクトリでPHPの実行を無効化する方法のチュートリアルをご覧ください。

5.WordPressの設定を保護する wp-config.phpファイル

WordPressサイトのルートディレクトリで最も重要なファイルは、おそらくwp-config.phpファイルでしょう。このファイルには、WordPressデータベースとその接続方法に関する情報が含まれています。

wp-config.phpファイルを不正アクセスから守るには、.htaccessファイルに次のコードを追加するだけです:

<files wp-config.php>
order allow,deny
deny from all
</files>

6..htaccessファイルで301リダイレクトを設定する

301リダイレクトを使用することは、コンテンツが新しい場所に移動したことをユーザーに伝える最もSEOに適した方法です。投稿日ごとに301リダイレクトを適切に管理したい場合は、WordPressでリダイレクトを設定する方法をご覧ください。

一方、素早くリダイレクトを設定したい場合は、すべてこのコードを.htaccessファイルに貼り付けるだけでよい:

Redirect 301 /oldurl/ http://www.example.com/newurl
Redirect 301 /category/television/ http://www.example.com/category/tv/

7.疑わしいIPアドレスを使用禁止にする。

特定のIPアドレスからサイトへのリクエストが異常に多くなっていませんか?.htaccessファイルでIPアドレスをブロックすれば、そのようなリクエストを簡単にブロックすることができます。

以下のコードを.htaccessファイルに追加するだけです:

<Limit GET POST>
order allow,deny
deny from xxx.xxx.xx.x
allow from all
</Limit>

xxをブロックしたいIPアドレスに置き換えることをお忘れなく。

8.WordPressで.htaccessを使って画像のホットリンクを無効化する

他のサイトがあなたのサイトから画像を直接ホットリンクすると、WordPressサイトの動作が遅くなり、帯域幅の制限を超える可能性があります。これは、ほとんどの小規模サイトでは大きな問題ではありません。しかし、人気のあるサイトや写真の多いサイトを運営している場合は、深刻な問題になる可能性があります。

このコードを.htaccessファイルに追加することで、画像のホットリンクを防ぐことができます:

#disable hotlinking of images with forbidden or custom image option
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?wpbeginner.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]

このコードでは、リクエストがwpbeginner.comまたはGoogle.comから発信されている場合にのみ、画像を表示することができます。wpbeginner.comをあなた自身のドメイン名に置き換えることを忘れないでください。

画像を保護する方法については、WordPressで画像の盗難を防ぐ方法をご覧ください。

9..htaccessを不正アクセスから守る

ご覧いただいたように、.htaccessファイルを使ってできることは非常にたくさんあります。.htaccessはウェブサーバー上で大きな力を持ち、コントロールできるため、ハッカーによる不正アクセスから保護することが重要です。

以下のコードを.htaccessファイルに追加するだけです:

<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

10.WordPressでファイルのアップロードサイズを増やす

WordPressのファイルアップロードサイズの上限を増やすには、さまざまな方法があります。しかし、共有ホスティングサービスを利用しているユーザーにとっては、これらの方法のいくつかは機能しません。

多くのユーザーにとって有効な方法のひとつは、.htaccessファイルに以下のコードを追加することである:

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300

このコードは、WordPressのファイルアップロードサイズと最大実行時間を増やすために、これらの値を使用するようにWebサーバーに指示するだけです。

11..htaccessを使用したXML-RPCファイルへのアクセス無効化

各WordPressインストールには、xmlrpc.phpというファイルが付属しています。このファイルにより、サードパーティ製アプリがWordPressサイトに接続できるようになります。WordPressのセキュリティ専門家の多くは、サードパーティアプリを使用していない場合は、この機能を無効化するようアドバイスしています。

それには複数の方法があります。そのひとつは、.htaccessファイルに以下のコードを追加する方法です:

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>

詳しくは、WordPressでXML-RPCを無効化する方法をご覧ください。

12.WordPressで投稿者スキャンをブロックする

ブルートフォース攻撃でよく使われるテクニックは、WordPressサイトでオーサースキャンを実行し、そのユーザー名のパスワードをクラックしようとするものです。

.htaccessファイルに以下のコードを追加することで、このようなスキャンをブロックすることができます:

# BEGIN block author scans
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (author=\d+) [NC]
RewriteRule .* - [F]
# END block author scans

詳しくは、WordPressで投稿者のスキャンをブロックしてブルートフォース攻撃を阻止する方法の投稿をご覧ください。

この投稿がWordPressで最も役立つ.htaccessのトリックを学ぶのにお役に立てば幸いです。WordPressのセキュリティ監査の方法や、WordPressのコンテンツ保護プラグインのエキスパートによるベストセレクションもご覧ください。

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

情報開示 私たちのコンテンツは読者支援型です。これは、あなたが私たちのリンクの一部をクリックした場合、私たちはコミッションを得ることができることを意味します。 WPBeginnerの資金源 をご覧ください。3$編集プロセスをご覧ください。

アバター

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

究極のWordPressツールキット

ツールキットへの無料アクセス - すべてのプロフェッショナルが持つべきWordPress関連製品とリソースのコレクション!

Reader Interactions

37件のコメント返信を残す

  1. Simeon

    Thanks so much for this. Very helpful!

    • WPBeginner Support

      Glad it was helpful!

      管理者

  2. Jackson Andrade

    I use password protection for wp-login.php. My customers cannot logout when login.php is protected. Is there a way I can allow customers to logout without calling wp-login.php?action=logout?
    Admins too can’t logout, but that’s not an issue.
    Woocommerce customer’s logut url is, domain.com/account/customer-logout.
    Both call wp-login.php for logout. Customers are asked for htaccess id and password. If there is a workaround, let me know. Thanks

    • WPBeginner Support

      If your site has a login for users who are not your admins then we would not recommend password protecting your wp-login.php for the time being and we do not have a workaround at this time.

      管理者

      • Jackson Andrade

        Thanks for that Info. Hope Wordpress adds a feature in future where it won’t redirect to login.php for logging out.

  3. HtaccessGuy

    Don’t password protect wpadmin if you use AJAX else it’l break stuff.

    • WPBeginner Support

      If you mean for 2 in this list, we’ve added code to allow ajax to continue to work.

      管理者

      • Ana

        This resolved my issue with above code. Thanks.

  4. Abhi

    Please Help Me.
    when I paste the following code in .htaccess file it shows an error that is..

    It appears you don’t have
    permission to access this page.
    403 Error. Forbidden.

  5. Ben

    Great article!
    Do I need to do this if I already have installed WordFence plugin?
    Some people don’t recommend messing with .htaccess file.
    Regards.

    • WPBeginner Support

      None of these tricks are required if you don’t want to use them, they are only helpful tools that you can use.

      管理者

  6. Sebastian

    I am not sure what does “Protect .htaccess From Unauthorized Access” mean exactly. Will I be able to access it if I make changes from point 9?

    • WPBeginner Support

      It means if someone knows where your htaccess is located and tries to view the file by putting that address in the url, the browser will not be able to view it.

      管理者

  7. reus

    how to use wp login user name and password (registered user) to access in your no. 2 topic (Password Protect WordPress Admin Folder).

    hope to to find answer here.

    thank you

    • WPBeginner Support

      If you wanted to use that, you would need to set the information in the htpasswds file

      管理者

      • reus

        thank you for your response, how to set that information in the htpasswds? thank you

        • WPBeginner Support

          We show the tool to use under tip 2 in the article :)

  8. Selvakumaran Krishnan

    Hai Syed Balkhi,

    I have to open a URL which has query parameters and strings like this.

    something.example.com/pagename.php?query1=string1&query2=string2&redirecturl=http%3A%2F%2Fsomething.example2.com/something&query3=string3

    In the above URL, the problem is %3A%2F%2F. It shows 403 forbidden error. If I remove that part, the URL works fine.

    I have searched and tried all the methods like mod rewrite, redirect, etc,. but nothing works.

    Is there any way to remove (or) rewrite (or) redirect that encoded part using .htaccess file. That part is in the middle of so many parameters. There are a lot of query parameters before and after that part.

    Please share your idea.

  9. Kathrine

    This is a great article!! I followed your instructions and everything works fine. I tried to open my admin site using the different IP address and it works great. Thank you for sharing your knowledge.

  10. Mohamed Adel

    When Protecting the directory to wp-admin (as explained in 2. Password Protect WordPress Admin Folder), wen I go to any page on the site the massage appears to put password.. How to fix that?
    I tried from Cpanel and the same problem happens

  11. Tony

    The tip in point 4 for disabling php execution has started to cause issues with the tinymce editor in pages & posts. A php file is included in the tinymce folder that loads the relevant js files. I’ve just removed the htaccess code from the wp-include folder to stop the issue. Maybe there’s another way around this?

  12. Pankaj

    Point 5 is not working
    (5. Protect Your WordPress Configuration wp-config.php File)

    [05-Mar-2018 08:20:03 Etc/GMT] PHP Parse error: syntax error, unexpected ‘<' in /home/—–/public_html/xyz.com/wp-config.php on line 91

    • WPBeginner Support

      Hi Pankaj,

      The code in the 5th trick needs to be pasted in .htaccess file and not in wp-config.php file.

      管理者

  13. Maximilian

    Hi there, thank you!
    Is ist possible to see the whole .htaccess somewhere? Yes, i could read: “put one line after the other” but still I am not sure.

    Is then “# END WordPress° sill the last line or is it somewhere on the top then?

    And what do you think about putting “Options -Indexes” on the very end?

    Thank you for your answer!

  14. yudi cahyadi

    good article..i have a question, after implementing the code in htaccess. Do I need to install a security plugin or not..??

    yudi cb(beginner)

  15. Mario von Gollaz

    Hi there, nice article. Is there a way to bulk redirect?

    Mario

  16. Kevin

    Hi,
    Great article and just one question!
    Should you place the extra code (especially speed opimisations) before or after the # BEGIN WordPress part?

    Regards
    Kevin

  17. Brian Wohn

    Hi, my theme developer told me this might be in the htaccess, but I don’t know why my wordpress is adding this at the end of all my pages:

    Any idea why its adding the “/?v=8f2564d40946”? I’ve checked my PermaLinks, Slugs, etc and nothing there?

    Thanks for your help!

    • WPBeginner Support

      Hi Brian,

      It lools like GeoLocation tag added by WooCommerce.

      If you are using WooCommerce, then you can turn it off. Go to WooCommerce General Options page and uncheck option ‘Geolocate with page caching support’ option.

      管理者

  18. Adrienne Warden

    Another wonderful post from WP Beginner…Just one tip for all us newbies…While WP Beginner has some of the best tips and trick for WordPress, when it comes to protecting your site, if you are on a shared server, search “support” first. I’ve learned a lot about the backend from reading post on WP Beginner, but the truth of the matter is – I’m no backender and most shared hosting already have a fix in place for these sorts of things…I’m with InMotion and they actual have set up one click solutions for many issues that effect site security. I turned off the file Index right from CPanel…

    Still WP Beginner is my go to for WordPress knowledge…You guys are awesome!

  19. Fien

    That is a nice article about htaccess. But how to implement this in one file? Can I put all lines after another?

  20. Liew CheonFong

    Great list. Bookmarked!

    Do you have same list for NGINX web server (which does not read .htaccess file) ?

  21. Pattye

    There is a way to ban bots from crawling your site the this file. Any suggestions in doing that, besides banning the IP?

返信を残す

コメントありがとうございます。すべてのコメントは私たちのコメントポリシーに従ってモデレートされ、あなたのメールアドレスが公開されることはありませんのでご留意ください。名前欄にキーワードを使用しないでください。個人的で有意義な会話をしましょう。