LoginSignup
9
4

More than 3 years have passed since last update.

WordPressの管理画面IP制限で.htaccessが効かないのはAWS Lightsailが原因だった

Posted at

やったこと

/opt/bitnami/apps/wordpress/htdocs/.htaccessに追記

<FilesMatch "wp-login.php|wp-admin">
    Order deny, allow
    Deny from all
    Allow from 000.000.000.000
</FilesMatch>

IP制限されず・・・
題名の通り、AWS Lightsailだと.htaccessは無効になるらしい。

解決策

  1. /opt/bitnami/apps/wordpress/conf/htaccess.confに追記
  2. 再起動

追記するコードはDirectoryタグの外

htaccess.confのデフォルト

<Directory "/opt/bitnami/apps/wordpress/htdocs/wp-content/plugins/akismet">
   <IfModule !mod_authz_core.c>
    Order Deny,Allow
    Deny from all
   </IfModule>
   <IfModule mod_authz_core.c>
    Require all denied
   </IfModule>

   <FilesMatch "^(form\.js|akismet\.js|akismet\.css)$">
    <IfModule !mod_authz_core.c>
        Allow from all
    </IfModule>

    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
   </FilesMatch>

   <FilesMatch "^logo-full-2x\.png$">
    <IfModule !mod_authz_core.c>
        Allow from all
    </IfModule>

    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
   </FilesMatch>
</Directory>

ビギナーだけかもしれないけど、Directoryタグの中に追記したくなる。
でもそれだと効かないので外に記述する。

htaccess.confに追記

</Directory>

<FilesMatch "wp-login.php|wp-admin">
Order Allow,Deny
Allow from 000.000.000.000
</FilesMatch>

FilesMacthタグ内の記述が少し変わっているのは、前のコードだとsyntaxエラーになったから。
調べてみた

<FilesMatch "wp-login.php|wp-admin">  //URLにwp-login.phpとwp-adminが含まれている時
    Order deny, allow  //デフォルトで許可、拒否するかの選択。Order allow,denyに変更するとデフォルトで拒否になる
    Deny from all  //デフォルトは許可してるけど、全て拒否に変更してる
    Allow from 000.000.000.000  //指定のIPのみ許可
</FilesMatch>

やってることは全く同じ。前のコードのほうが無駄があるように見える。
なぜsyntaxエラーが出たのかはUbuntuが原因かなと思います。Linuxなら大丈夫なはず。

再起動

sudo /opt/bitnami/ctlscript.sh restart apache

おまけ

FilesMatchタグ内を工夫することで、より特定したURLを指定できる。

<FilesMatch "^wp-login.php|wp-admin$">

^wp-login.php

wp-login.phpから始まる文字列を指定。 例)aaa-wp-login.phpは除外

wp-admin$

wp-adminで終わる文字列を指定。 例)wp-admin-aaaは除外

量指定子 説明
^ 行の先頭
$ 行の末尾
. あらゆる一文字
1回以上の繰り返し
* 0回以上の繰り返し
? 0回か、1回の繰り返し
{ n } n 回の繰り返し
{ n ,} n 回以上の繰り返し
{n,m} n 回から m 回の繰り返し
9
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
4