質問

私が管理している古い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]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top