私はすべてのWeb開発作業で常にApacheを使用してきましたが、IISを回避するのに苦労しています。すべてのリクエストを1つの特定のファイル「api.php」に再ルーティングするAPIがあります。IISで次のことを行うにはどうすればよいですか。
RewriteEngine on
RewriteRule ^/.* /api.php
私のサーバーはweb.configファイルでこれを実現することのみを許可しているので、IISマネージャーやその性質のものにはアクセスできません。 IIS 7.5を使用しています。
使用しているデザインパターンは、「 フロントコントローラー 」と呼ばれ、リクエストを処理するための中心的なエントリポイントです。
さまざまなWebサーバーでそのパターンを実装する方法を示すWebサイト です。 web.configファイルのIISに推奨する構成は次のとおりです。
<?xml version="1.0"?>
<configuration>
<system.webServer>
<defaultDocument>
<files>
<clear />
<add value="index.php" />
</files>
</defaultDocument>
<rewrite>
<rules>
<rule name="Silex Front Controller" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
最初の方法:
以下からWebプラットフォームインストーラーをインストールします。
http://www.iis.net/downloads
Urlrewriteを見つけてIISに追加すると、IISでURL書き換えセクションを見つけることができます。
URL書き換えを使用して、新しいルールを作成するか、.htaccessファイルからインポートできます。
第二の簡単な方法:
/index.php
に変更しますこれで、すべての不明なリクエストがindex.php
にリダイレクトされます。