6

IIS で Helicon ISAPI Rewrite の無料バージョンを実行しており、複数のサイトで同じ一連の書き換えルールを実行しています。これまでのところ、すべてのルールがすべてのサイトに適用されているため、問題はありませんでした。最近、すべてのルールを実行したくない新しいサイトを追加しました。独自のルールを実行した後、このサイトへのリクエストをルール セットから外す方法はありますか。

次のことを試してみましたが、うまくいきませんでした。mysite.com へのすべてのリクエストは 404 になります。私が探しているのは、何もせず、実行する最後のルールとしてマークされているルールだと思います [L]。

## New site rule for mysite.com only
RewriteCond  Host:  (?:www\.)?mysite\.com
RewriteRule  /content([\w/]*)   /content.aspx?page=$1 [L]

## Break out of processing for all other requests to mysite.com
RewriteCond  Host:  (?:www\.)?mysite\.com
RewriteRule (.*) - [L]

## Rules for all other sites
RewriteRule ^/([^\.\?]+)/?(\?.*)?$ /$1.aspx$2 [L]
...
4

4 に答える 4

10

WebDAV フォルダーで mod_rewrite を停止するために、同様のことを行いました。

# stop processing if we're in the webdav folder
RewriteCond %{REQUEST_URI} ^/webdav [NC]
RewriteRule .* - [L]

それはあなたの目的にも役立つはずです。そうでない場合、または追加の参照に興味がある場合は、この前の質問を参照してください: mod_rewrite でディレクトリを無視するにはどうすればよいですか?

于 2008-10-23T12:22:28.867 に答える
2

それを自分自身に書き換えますか?

RewriteCond  Host:  (?:www\.)?mysite\.com
RewriteRule ^(.*)$ $1 [QSA,L]
于 2008-10-23T08:58:56.890 に答える
1

ISAPI Rewrite の構文はわかりませんが、IIRFでは、「ブレイクアウト」ルールは次のようになります。

## Break out of processing for all other requests to mysite.com
RewriteCond %{SERVER_NAME}  ^(?:www\.)?mysite\.com$
RewriteRule (.*) - [L]

また

## Break out of processing for all other requests to mysite.com
RewriteCond %{HTTP_HOST}  ^(?:www\.)?mysite\.com$
RewriteRule (.*) - [L]

いずれの場合も、ルールは「書き換えないでください (これ以上ルールを処理しないでください)」と述べており、使用されているホスト名が mysite.com または www.mysite.com の場合に適用されます。[L] フラグは「これ以上ルールを処理しない」という部分で、- 置換は「書き換えない」という部分です。

于 2009-07-15T00:59:50.507 に答える