複数のパラメータがあり、パラメータの 1 つに複数の単語が含まれているページの URL を書き換えようとしていました (送信時にスペースで区切られていました)。
これは URL になります: www.ABCD.com/store/itemsDescr.php?categ=headbands&id=123&name=brown%20with%20black
URL を次のように表示してほしい: www.ABCD.com/store/headbands/123/brown-with-black
私はこれを試しましたが、うまくいきませんでした:
RewriteCond %{QUERY_STRING} ^categ=([^&]+) [NC,OR]
RewriteCond %{QUERY_STRING} &categ=([^&]+) [NC]
RewriteRule ^store/itemsDescr\.php$ $0/%1
RewriteCond %{QUERY_STRING} ^id=([^&]+) [NC,OR]
RewriteCond %{QUERY_STRING} &id=([^&]+) [NC]
RewriteRule ^store/itemsDescr\.php/[^/]+$ $0/%1
RewriteCond %{QUERY_STRING} ^name=([^&]+) [NC,OR]
RewriteCond %{QUERY_STRING} &name=([^&]+) [NC]
RewriteRule ^store/itemsDescr\.php/([^/]+/[^/]+)$ http://www.ABCD.com/store/$1/%1/? [L,QSA,NC]
どんな助けでも大歓迎です!
注: このルールを実装する前に、競合が発生する可能性がある場合に備えて、別のページに別のルールを既に持っています。
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(store)/index\.php\?categ=([^\s]+) [NC]
RewriteRule ^ /%1/%2? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^store/(.+?)/?$ /store/index.php?categ=$1 [L,QSA,NC]