質問
私が管理している古いASPストアサイトでいくつかのコードを動作させるのに苦労しています-完璧に機能する以下を追加しました
RewriteBase /
RewriteRule ^cat/[^?/]*_(\d+)\.htm /store/prodList.asp?idcategory=$1 [QSA]
問題は、カテゴリページに複数のページがある場合です!次のようにクエリ文字列に別のパラメータを追加するため
/store/prodList.asp?idcategory=102&curPage=2&sortField=sortorder
さらに3つのクエリ文字列パラメータを取得して、書き換えられたURLに追加する例を探しています...誰でも助けてくれますか?
たとえば、現在、次のURLは正常に機能しています
cat/productname_5.htm ... equates to ... /store/prodList.asp?idcategory=5
複数のページがある場合、次のようなことをする必要がありますか? ISAPI構文がわからない場合
cat/productname_5_2_sortorder.htm ... would equate to ... /store/prodList.asp?idcategory=5&curPage=2&sortField=sortorder
それがより理にかなっていることを望みますか?
解決
これはあなたが求めていることだと思います。[L]引数を設定して、最初の一致で一致を停止します。
ただし、[L]では、最初に4つの引数、次に3、2など、最も制限の厳しい順に並べる必要があります。
ReWriteRule ^/store/([0-9]+)/([0-9]+)/{0,1}$ /store/prodList.asp\?idcategory=$1&curPage=$2 [L]
ReWriteRule ^/store/([0-9]+)/([0-9]+)/([A-Za-z]+)/{0,1}$ /store/prodList.asp\?idcategory=$1&curPage=$2&sortField=$3 [L]
所属していません StackOverflow