ISAPI rewrite(mod_rewrite)を使用して、これに一致する正規表現を作成しようとしています。
www.website.com/product.aspx?iid=201
私はもう試した:
^(.*)/product.aspx?iid=201
と:
^(.*)/product\.aspx\?iid=201
どちらの表現もそれに一致していないようです。
ISAPI rewrite(mod_rewrite)を使用して、これに一致する正規表現を作成しようとしています。
www.website.com/product.aspx?iid=201
私はもう試した:
^(.*)/product.aspx?iid=201
と:
^(.*)/product\.aspx\?iid=201
どちらの表現もそれに一致していないようです。
^(.*)/product.aspx\?iid=201
ここで動作します:
http://www.regexplanet.com/simple/index.html
したがって、IISでも機能することを期待します
Javaを使用している場合は、次のように2番目のソリューションをエスケープします。
"^(.*)/product\\.aspx\\?iid=201"
たぶんIISはそのスタイルのエスケープが好きです(ここではテストできません)
以下のルールは、(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時です:)