- <VirtualHost my.domain.com:80>
- ServerName my.domain.com
- DocumentRoot /path/to/server/root/my.domain.com/public
- RewriteEngine off
- <Location />
- RewriteEngine On
- RewriteCond %{REQUEST_FILENAME} -s [OR]
- RewriteCond %{REQUEST_FILENAME} -l [OR]
- RewriteCond %{REQUEST_FILENAME} -d
- RewriteRule ^.*$ - [NC,L]
- RewriteRule ^.*$ /index.php [NC,L]
- </Location>
- </VirtualHost>
Programmer's Reference Guide
| モジュール構造 |
リライト設定ガイド
URL リライトは、 HTTP サーバの共通機能です。 しかしながら、ルールと構成は、それらの間ではなはだしく異なります。 下記は、書いた時点で利用できる、ポピュラーな様々なウェブサーバを通じた 多少の共通するアプローチです。
Apache HTTPサーバ
移行の例では全て、 mod_rewrite ( Apache にバンドルされた公式モジュール) を使います。 それを使うために、 mod_rewrite はコンパイル時に含まれるか、 動的共用オブジェクト (DSO) として許可されなければなりません。 詳しくは、あなたのバージョンの » Apache ドキュメントを参照してください。
バーチャルホスト内でのリライト
これは非常に基本的なバーチャルホスト定義です。 これらのルールは、一致するファイルが document_root 配下で見つかった時を除き、 リクエスト全てを index.php に導きます。
index.php の前におかれたスラッシュ ("/") に注意してください。 .htaccess でのルールはこの点に関しては異なります。
.htaccessファイル内でのリライト
下記はmod_rewriteを利用する .htaccessファイルの例です。 これは、リライト・ルールだけを定義し、 index.php から先行するスラッシュが省略されたことを除けば、 バーチャルホストの設定に似ています。
- RewriteEngine On
- RewriteCond %{REQUEST_FILENAME} -s [OR]
- RewriteCond %{REQUEST_FILENAME} -l [OR]
- RewriteCond %{REQUEST_FILENAME} -d
- RewriteRule ^.*$ - [NC,L]
- RewriteRule ^.*$ index.php [NC,L]
mod_rewriteを設定する方法はたくさんあります。 もし、詳細をお好みでしたら、Jayson Minard の» Blueprint for PHP Applications: Bootstrappingをご覧下さい。
Microsoft Internet Information サーバ
バージョン 7.0 現在、 IIS には現在標準的なリライト・エンジンが含まれます。 適切なリライトルールを作成するために、以下の構成を使うかもしれません。
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration>
- <system.webServer>
- <rewrite>
- <rules>
- <rule name="Imported Rule 1" stopProcessing="true">
- <match url="^.*$" />
- <conditions logicalGrouping="MatchAny">
- <add input="{REQUEST_FILENAME}"
- matchType="IsFile" pattern=""
- ignoreCase="false" />
- <add input="{REQUEST_FILENAME}"
- matchType="IsDirectory"
- pattern=""
- ignoreCase="false" />
- </conditions>
- <action type="None" />
- </rule>
- <rule name="Imported Rule 2" stopProcessing="true">
- <match url="^.*$" />
- <action type="Rewrite" url="index.php" />
- </rule>
- </rules>
- </rewrite>
- </system.webServer>
- </configuration>
| モジュール構造 |
