httpsでのmod_rewrite
普通にRewriteCond
書いたらhttpsでは全く動作しなかった。
公式ドキュメントにはRewriteEngine
はバーチャルホストごとに効くとあった。
Note that rewrite configurations are not inherited by virtual hosts. This means that you need to have a RewriteEngine on directive for each virtual host in which you wish to use rewrite rules.
更に、.htaccess
も有効にし、RewriteEngine
の設定を親ディレクトリを優先させるように、以下を/etc/httpd/ssl.conf
のVirtualHost
ディレクティブの中に追記した。
1 2 3 4 5 |
<Directory "/var/www/html"> AllowOverride All </Directory> RewriteEngine On RewriteOptions inherit |
終わったら必ずApacheを再起動すること。
1 |
systemctl restart httpd |
これでmod_rewriteでのアクセス制御がうまく動作するようになった。