「.htaccess」ファイルを有効にする方法

このブログは、Linux の自宅サーバ上で WordPress を使用して公開しています。この WordPress の設定でパーマリンクをデフォルトから変更する場合に、 .htaccess ファイルを使用する必要があります。この設定ファイルを使用するために必要な、 Apache の設定をまとめておきます。

スポンサーリンク




.htaccess ファイルとは

.htaccess ファイルは、Apache などの ウェブサーバの動作をディレクトリ単位で制御するためのファイルです。 Apache の設定ファイル( httpd.conf )に書かれている設定は、すべてのディレクトリで共通となるのですが、 .htaccess ファイルを使用するとこのファイルに書かれている設定が、優先されます。また、この .htaccess というファイル名称は、 AccessFileName ディレクティブで設定されており、変更が可能です。例えば、次のように設定することで、ファイル名が、 .configaccess となります。

AccessFileName .configaccess

モジュールの有効化

.htaccess ファイルを使用する上で必要なモジュールを有効化します。必要なモジュールは、
mod_rewrite.so です。モジュールが有効化どうかは、 apache2ctl コマンドを使います。( Debian 以外の場合は、 httpd コマンドを使用。)

root@debian:~# apache2ctl -M
Loaded Modules:
 core_module (static)
 log_config_module (static)
 logio_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 alias_module (shared)
 auth_basic_module (shared)
 authn_file_module (shared)
 authz_default_module (shared)
 authz_groupfile_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 cgi_module (shared)
 dir_module (shared)
 env_module (shared)
 mime_module (shared)
 negotiation_module (shared)
 php5_module (shared)
 rewrite_module (shared)
 setenvif_module (shared)
 status_module (shared)
Syntax OK

Debian では、モジュールの有効方法が特殊で、 a2enmod コマンドを使ってモジュールを有効にします。 mod_rewrite.so モジュールを有効にするには、次のように実行します。

root@debian:~# /usr/sbin/a2enmod rewrite
Enabling module rewrite.
Run '/etc/init.d/apache2 restart' to activate new configuration!

Apache 設定ファイルの変更

Debian では、 httpd.conf に相当する設定ファイルが、 /etc/apache2/sites-available/default になります。この設定ファイルの AllowOverride ディレクティブを変更します。設定ファイル内の以下の箇所を変更します。

<Directory /var/www/>
	Options Indexes FollowSymLinks MultiViews
#	AllowOverride None
	AllowOverride All
	Order allow,deny
	allow from all
</Directory>

後は、 Apache を再起動すれば、 .htaccess ファイルが有効になります。

AllowOverride ディレクティブについて

Apache の設定ファイルで変更した、 AllowOverride ディレクティブについてまとめます。このディレクティブは、 .htaccess ファイルで上書きを許可するディレクティブの種類を設定します。このディレクティブは、 <Directory> ディレクティブ内でのみ有効で、以下のキーワードを設定できます。

All
.htaccess で指定された全ディレクティブの使用を許可します。
None
.htaccess ファイルの存在自体を無視します。内容の確認も行いません。
AuthConfig

認証に関する以下のディレクティブの使用を許可します。

  • AuthDBMGroupFile
  • AuthDBMUserFile
  • AuthGroupFile
  • AuthName
  • AuthType
  • AuthUserFile
  • Require
FileInfo

ドキュメントタイプに関する以下のディレクティブの使用を許可します。

  • efaultType
  • ErrorDocument
  • ForceType
  • LanguagePriority
  • SetHandler
  • SetInputFilter
  • SetOutputFilter

mod_mimeモジュールに関する以下のディレクティブの使用を許可します。

  • AddCharset
  • AddEncoding
  • AddHandler
  • AddInputFilter
  • AddLanguage
  • AddOutputFilter
  • AddType
  • RemoveCharset
  • RemoveEncoding
  • RemoveHandler
  • RemoveInputFilter
  • RemoveLanguage
  • RemoveOutputFilter
  • RemoveType

ドキュメントのメタデータに関する以下のディレクティブの使用を許可します。

  • Header
  • RequestHeader
  • SetEnvIf
  • SetEnvIfNoCase
  • BrowserMatch
  • CookieExpires
  • CookieDomain
  • CookieStyle
  • CookieTracking
  • CookieName

mod_rewrite モジュールに関する以下のディレクティブの使用を許可します。

  • RewriteEngine
  • RewriteOptions
  • RewriteBase
  • RewriteCond
  • RewriteRule

mod_actions モジュールに関する以下のディレクティブの使用を許可します。

  • Action
Indexes

ディレクトリインデックスに関する以下のディレクティブの使用を許可します。

  • AddDescription
  • AddIcon
  • AddIconByEncoding
  • AddIconByType
  • DefaultIcon
  • DirectoryIndex
  • FancyIndexing
  • HeaderName
  • IndexIgnore
  • IndexOptions
  • ReadmeName
Limit
ホストへのアクセスに関する以下のディレクティブの使用を許可します。

  • Allow
  • Deny
  • Order
Options
Options ディレクティブの使用を許可します。
スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする