PHP でアプリケーションを開発するために Zend Framework 2 を使用しています。すべてがローカルで動作します (Linux の apache サーバー)。
しかし、今は自分のサイトを Windows Server に展開する必要があります (Azure 上の IIS を使用)。
IIS は .htaccess を読み取らないため、web.config ファイルに書き直す必要があります。これは、IIS7 のインポート書き換えルール機能を使用して行ったことです。詳細はこちら。
残念ながら、ISS はルールを Web 構成に変換できません。
ここであなたの助けが必要です。
これが私の .htaccess ファイルです (Zend Framework 2 のデフォルトのファイル)
RewriteEngine On
# The following rule tells Apache that if the requested filename
# exists, simply serve it.
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
# The following rewrites all other queries to index.php. The
# condition ensures that if you are using Apache aliases to do
# mass virtual hosting, the base path will be prepended to
# allow proper resolution of the index.php file; it will work
# in non-aliased environments as well, providing a safe, one-size
# fits all solution.
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]
編集
いくつかの調査の後、-s と -l (最初の 2 つの条件) を -f に置き換えることができることがわかりました。完全!
したがって、私の本当の問題は、最後の 2 つのルールに焦点を当てています。(ISS は E=.. および ENV:.. 構文を変換できます)