InfraLab
APACHE-HTTPD40 cmd

Apache HTTP Server チート集

Apache HTTP Server の VirtualHost、Directory/Location、mod_rewrite、mod_ssl、.htaccess、Basic/Digest 認証、ログ設定を実務向けに整理したチート集。

更新日
2026-05-29
参照範囲
公式ドキュメント / man page / 主要ベンダーCLI
対象実装
主要 Linux / BSD / ネットワーク機器 CLI の一般的な実装
免責
OS とバージョン差分は実環境で確認してください。

このチートシートの使いどころ

Apache HTTP Server チートシートは、VirtualHost、Directory、Location、mod_rewrite、mod_ssl、.htaccess、認証、ログ設定を扱う運用一覧です。対象は現行 httpd の一般的な構成です。移行前の設定棚卸し、TLS 設定確認、リダイレクト不具合、アクセス制御やログ調査の初動に使います。

40 / 40

apachectl configtest

設定ファイルの構文を検証する。

Example
sudo apachectl configtest
apachectl graceful

既存接続を保ちながら設定を再読込する。

Example
sudo apachectl graceful
apachectl restart

httpd を再起動する。

Example
sudo apachectl restart
apachectl status

mod_status のサーバ状態を表示する。

Example
apachectl status
httpd -V

コンパイル設定と ServerRoot を確認する。

Example
httpd -V | grep -E "SERVER_CONFIG_FILE|HTTPD_ROOT"
httpd -M

読み込み済みモジュールを一覧する。

Example
httpd -M | sort
<VirtualHost *:80>

HTTP 仮想ホストの最小構成。

Example
<VirtualHost *:80> ServerName www.example.com DocumentRoot /var/www/example </VirtualHost>
NameVirtualHost 相当

Apache 2.4 では ServerName ベースの VirtualHost をそのまま使う。

Example
<VirtualHost *:80> ServerName app.example.com ProxyPass / http://127.0.0.1:3000/ </VirtualHost>
<Directory>

ファイルシステムパス単位で権限を制御する。

Example
<Directory "/var/www/example"> Require all granted AllowOverride None </Directory>
<Location>

URL パス単位でアクセス制御する。

Example
<Location "/admin"> Require ip 10.0.0.0/8 </Location>
<Files>

ファイル名単位でアクセス制御する。

Example
<Files ".env"> Require all denied </Files>
<If>

式に応じて条件付き設定を適用する。

Example
<If "%{HTTP_HOST} == 'old.example.com'"> Redirect permanent / https://www.example.com/ </If>
a2enmod

Debian 系でモジュールを有効化する。

Example
sudo a2enmod ssl rewrite headers proxy proxy_http
a2dismod

Debian 系でモジュールを無効化する。

Example
sudo a2dismod status
apachectl -M grep

有効モジュールを確認する。

Example
apachectl -M | grep rewrite_module
LoadModule

RHEL 系などでモジュールを直接読み込む。

Example
LoadModule rewrite_module modules/mod_rewrite.so
mod_proxy reverse

バックエンドへリバースプロキシする。

Example
ProxyPass / http://127.0.0.1:3000/ ProxyPassReverse / http://127.0.0.1:3000/
mod_headers HSTS

レスポンスヘッダを追加する。

Example
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
RewriteEngine On

mod_rewrite を有効化する。

Example
RewriteEngine On
HTTPS 強制

HTTP から HTTPS へ 301 リダイレクトする。

Example
RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
canonical host

www ありへ正規化する。

Example
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC] RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301,L]
front controller

存在しないパスを index.php へ渡す。

Example
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^ index.php [L]
RewriteRule proxy

rewrite でプロキシ先へ転送する。

Example
RewriteRule ^/api/(.*)$ http://127.0.0.1:8080/$1 [P,L]
SSLEngine on

TLS 仮想ホストで SSL を有効化する。

Example
<VirtualHost *:443> ServerName www.example.com SSLEngine on </VirtualHost>
SSLCertificateFile

証明書と秘密鍵を指定する。

Example
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLProtocol

TLS 1.2/1.3 のみに制限する。

Example
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite

TLS 1.2 向け cipher suite を制御する。

Example
SSLCipherSuite HIGH:!aNULL:!MD5
SSLHonorCipherOrder

サーバ側 cipher 優先を指定する。

Example
SSLHonorCipherOrder on
AllowOverride None

本番で .htaccess 読み込みを無効化する。

Example
<Directory "/var/www/example"> AllowOverride None </Directory>
AllowOverride FileInfo AuthConfig

必要な .htaccess 機能だけ許可する。

Example
<Directory "/var/www/legacy"> AllowOverride FileInfo AuthConfig </Directory>
htpasswd create

Basic 認証用パスワードファイルを作る。

Example
sudo htpasswd -c /etc/apache2/.htpasswd alice
Basic auth

ディレクトリに Basic 認証を掛ける。

Example
AuthType Basic AuthName "restricted" AuthUserFile /etc/apache2/.htpasswd Require valid-user
Digest auth

Digest 認証を設定する。

Example
AuthType Digest AuthName "admin" AuthDigestProvider file AuthUserFile /etc/apache2/digest.passwd Require valid-user
Require ip

送信元 IP で許可する。

Example
<Location "/server-status"> Require ip 127.0.0.1 10.0.0.0/8 </Location>
LogFormat combined

カスタムログ形式を定義する。

Example
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog

アクセスログを指定形式で出力する。

Example
CustomLog /var/log/apache2/access.log combined
ErrorLog LogLevel

エラーログとレベルを設定する。

Example
ErrorLog /var/log/apache2/error.log LogLevel warn
piped log rotatelogs

パイプログで日次ローテーションする。

Example
CustomLog "|/usr/sbin/rotatelogs /var/log/apache2/access.%Y%m%d.log 86400" combined
mod_status

サーバ状態ページをローカル限定で公開する。

Example
<Location "/server-status"> SetHandler server-status Require local </Location>
SetEnvIf healthcheck

ヘルスチェックをアクセスログから除外する。

Example
SetEnvIf Request_URI "^/health$" dontlog CustomLog /var/log/apache2/access.log combined env=!dontlog
対応ツール
Related