0

私はこのURLを持っています

http://localhost/sahara/product.php?action=viewcat
http://localhost/sahara/product.php?action=viewsubcat&catparent=40

そしてhtaccessは

RewriteRule product-action-(.*)\.html$ product.php?action=$1
RewriteRule product-action-(.*)-catparent-(.*)\.html$ product.php?action=$1&catparent=$2

次に、書き換えURLを呼び出すと、最初のコードのみが機能します

http://localhost/sahara/product-action-viewcat.html ---> it's work 
http://localhost/sahara/product-action-viewsubcat-catparent-40.html ---> it's not work

私のスクリプトの htaccess の正しいコードは何ですか ありがとう

4

1 に答える 1

0

これは、URIが最初のパターン/sahara/product-action-viewsubcat-catparent-40.htmlにも一致するためです: . すべてに一致する正規表現の部分は、URIの部分と一致しています。product-action-(.*)\.html$(.*)viewsubcat-catparent-40

式をより制限的にするか、2 つのルールの順序を変更する必要があります。

より制限的 (このようなもの):

RewriteRule product-action-([a-z]+)\.html$ product.php?action=$1 [L]
RewriteRule product-action-([a-z]+)-catparent-([0-9]+)\.html$ product.php?action=$1&catparent=$2 [L]

または単に順序を逆にします:

RewriteRule product-action-(.*)-catparent-(.*)\.html$ product.php?action=$1&catparent=$2
RewriteRule product-action-(.*)\.html$ product.php?action=$1
于 2013-05-03T04:32:53.110 に答える