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 へアクセスしてください。

RewriteBaseディレクティブの使い方(1)

リダイレクト先の基準ディレクトリ /site に含まれる /site/hello.html へリダイレクトされます。

RewriteBaseディレクティブの使い方(2)

-- --

Apache の RewriteBase ディレクティブの使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。