RewriteBaseディレクティブ:リライト先を相対パスで指定するときの基準ディレクトリを設定する
RewriteBase ディレクティブは、 RewriteRule ディレクティブによって URL のリライトやリダイレクトが行われるときに、リライト先の URL を相対パスで指定するときの記述となるディレクトリを指定します。ここでは Apache の RewriteBase ディレクティブの使い方について解説します。
(Last modified: )
RewriteBaseディレクティブの使い方
RewriteBase ディレクティブはリライト/リダイレクト先を相対パスで指定する場合の基準ディレクトリを指定する場合に使用します。書式は次のとおりです。
RewriteBase URLパス
記述できる場所は Directory, .htaccess です。 .htaccess で設定する場合は AllowOverride FileInfo が設定されている必要があります。
例えばリライト先の URL が /new/hello.html だった場合、 RewriteBase /new と設定しておくことでリライト先の URL を hello.html と記述することができます。
実際に試してみます。 /blog/hello.html へアクセスがあった場合に、 /site/hello.html へリダイレクトする場合で考えてみます。 RewriteBase ディレクティブを使用しない場合は次のように記述します。( .htaccess ファイルを /blog に設置する場合です)。
RewriteEngine on RewriteRule ^hello\.html$ /site/hello.html [R=301]
RewriteBase ディレクティブを使用すると次のように記述することができます。
RewriteEngine on RewriteBase /site RewriteRule ^hello\.html$ hello.html [R=301]
それではブラウザから http://localhost/blog/hello.html へアクセスしてください。
リダイレクト先の基準ディレクトリ /site に含まれる /site/hello.html へリダイレクトされます。
-- --
Apache の RewriteBase ディレクティブの使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。