私が抱えている問題は、ISAPI_Rewriter を実行している IIS6 サーバーに基づいています。
状況は、IIS6 で Wordpress を実行していて、ISAPI_Rewriter が mod_rewrite の代わりとして機能し、適切に機能しているということです。私の問題は、Wordpress 用に URL を書き換えると (そのため、index.php ファイル名は必要ありません)、404 が表示されることです。よく検索した結果、ASP.net (または同様のもの) は URL の末尾に eurl.axd/[ランダムな文字列] を追加していたため、これが Wordpress リクエストに送られ、それを壊していました。要求された URL を出力するように Wordpress テンプレートを設定すると、次のようになります。
http://www.example.com/index.php/about/eurl.axd/b552863f2d5e9841b5d8b79b44ac02e8/
これは、IIS システム内のさまざまなものの序列が原因であり、犯人はプロジェクトの別の部分を実行する必要があるためだと思います。ISAPI_Rewriter を使用して URL をきれいにしたいので、次のことを知りたいです。
システムにフィードする前に mod_rewrite で eurl.axd/[string] を削除する方法はありますか?
私の .htaccess ファイルは現在次のように表示されます。
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# The following line excludes folders from rewriting
RewriteCond %{REQUEST_URI} !^/folder-name/
RewriteRule ^/(.*)$ /$1 [NC,L]
いつも大変お世話になっております。
編集: 提案に基づいて htaccess を調整しましたが、実行した簡単なテストからうまく機能しているようです。以下に掲載しました。
RewriteEngine on
RewriteBase /
# This is used to strip ASP.net eurl.axd bits
# from the URL so wordpress can use permalinks
# For the root
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/wp-admin/
RewriteRule ^eurl\.axd/[0-9a-f]+/$ index.php [NC,L]
# For internal permalinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/wp-admin/
RewriteRule ^(.*)/eurl\.axd/[0-9a-f]+/$ index.php/$1 [NC,L]