0

ISAPI rewrite(mod_rewrite)を使用して、これに一致する正規表現を作成しようとしています。

www.website.com/product.aspx?iid=201

私はもう試した:

^(.*)/product.aspx?iid=201

と:

^(.*)/product\.aspx\?iid=201

どちらの表現もそれに一致していないようです。

4

2 に答える 2

1
^(.*)/product.aspx\?iid=201

ここで動作します:

http://www.regexplanet.com/simple/index.html

したがって、IISでも機能することを期待します

Javaを使用している場合は、次のように2番目のソリューションをエスケープします。

"^(.*)/product\\.aspx\\?iid=201"

たぶんIISはそのスタイルのエスケープが好きです(ここではテストできません)

于 2011-06-22T21:18:25.807 に答える
1

以下のルールは、(301)をからdomain.com/product.aspx?iid=201にリダイレクトしますdomain.com/product/productname

RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} ^iid=201 [NC]
RewriteRule ^product\.aspx$ /product/productname [NC,R=301,L]

覚えておく必要があります-Apacheのmod_rewrite、Helicon ISAPI_Rewrite v3、IIS 7.x-RewriteRuleディレクティブ(またはIISでは同等のもの)は、URLの「パス」部分でのみ機能します。ドメイン名、プロトコル、サーバーポート、クエリ文字列などを操作する必要がある場合は、を使用する必要がありますRewriteCond

上記のルールは完全に機能しています。自分のサーバーの1つにHeliconISAPI_Rewritev3があります(IIS6、それ以外の場合はIIS7と標準のURL書き換えモジュールになります)。

ご不明な点がございましたら、お問い合わせください。ただし、おそらく数時間以内に回答いたします。ここでは午前3時です:)

于 2011-06-23T02:08:35.277 に答える