はじめに
Apache mod_rewriteは、URL操作を実行する方法を提供する非常に強力で洗練されたモジュールです。 mod_rewriteを使用すると、必要になる可能性のあるすべてのタイプのURL書き換えを実行できます。この記事では、CentOSサーバーでApacheモジュールmod_rewriteを有効にする方法を説明します。
ステップ1:モジュールが存在するかどうかを確認します
モジュールmod_rewriteを有効にする前に、モジュールがすでにhttpdファイルにロードされているかどうかを確認する必要があります。
端末で次のコマンドを実行します。
# httpd -V
出力は次のようになります
Server version: Apache/2.2.15 (Unix) Server built: Jan 12 2017 17:09:39 Server's Module Magic Number: 20051115:25 Server loaded: APR 1.3.9, APR-Util 1.3.9 Compiled using: APR 1.3.9, APR-Util 1.3.9 Architecture: 64-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APACHE_MPM_DIR="server/mpm/prefork" -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=128 -D HTTPD_ROOT="/etc/httpd" -D SUEXEC_BIN="/usr/sbin/suexec" -D DEFAULT_PIDLOG="run/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_LOCKFILE="logs/accept.lock" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf"
上記の結果から、apache構成ファイル(httpd.conf)のパスを見つけることができます。この結果から、サーバーのconfファイルパスは/etc/httpd/conf/httpd.confであると言えます。
モジュールが存在するかどうかを確認するには、以下のコマンドを実行します
# ls /etc/httpd/modules | grep mod_rewrite
モジュールが存在する場合、次の結果が得られます。
出力:
mod_rewrite.so
この結果が得られない可能性はまれですが、この結果が得られない場合は、mod_rewriteをインストールし、モジュールサポートを使用してApacheをコンパイルする必要があります。
ステップ2:モジュールがロードされているかどうかを確認します
モジュールがmodulesディレクトリに存在することを確認したので、モジュールがロードされているか有効になっているかを確認しましょう。これを行うには、ターミナルで次のコマンドを実行します。
# grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite
次の結果が表示された場合は、モジュールが有効になっていることを意味します。
LoadModule rewrite_module modules/mod_rewrite.so
この結果に以下のようにコメントが付けられている場合は、httpd.confファイルからコメントを削除し、ファイルを保存して終了します。
#LoadModule rewrite_module modules/mod_rewrite.so
ただし、上記の結果が得られない場合は、httpd.confファイルに次の行を追加してください。
LoadModule rewrite_module modules/mod_rewrite.so
ステップ3:httpd.confファイルを構成する
mod_rewriteモジュールを有効にしたので、次に.htaccessを使用してmod_rewriteを使用してURL書き換えを行うには、各ディレクトリがApacheのグローバルオプションをオーバーライドできるようにする必要があります。
ターミナルで次のコマンドを実行します
# grep -i AllowOverride /etc/httpd/conf/httpd.conf
出力:
AllowOverride None # AllowOverride controls what directives may be placed in .htaccess files. AllowOverride None # AllowOverride FileInfo AuthConfig Limit # for additional configuration directives. See also the AllowOverride AllowOverride None AllowOverride None AllowOverride None
これで、CentOSサーバーでmod_rewriteモジュールが有効になりました。