次の書き換えルールがあります。
RewriteRule ^([a-zA-Z0-9]*)/([a-zA-Z0-9]*)\\.php\?(.*) /$2.php?shop=$1&$3 [NC,L]
RewriteRule ^([a-zA-Z0-9]*)/([a-zA-Z0-9]*)\\.php /$2.php?shop=$1 [NC,L]
RewriteRule ^([a-zA-Z0-9]*)/$ /index.php?shop=$1 [L,NC]
RewriteRule ^([a-zA-Z0-9]*)$ /index.php?shop=$1 [L,NC]
その結果、以下をリダイレクトする必要があります。
www.site.com/Sells
-> /index.php?shop=Sells [works]
www.site.com/Sells/menu.php?Cat=1
-> /menu.php?shop=Sells&Cat=1 [failing]
-> /menu.php?shop=Sells [which is 'wrong']
最後の例は、rewrite[1]..によって一致するはずです。
類人猿に同梱されている正規表現テスターを使用してルールをテストしましたが、エスケープ?
し.
て機能しないようです。私は少し混乱しているので、なぜこのエスケープが機能しないのかを明らかにしてくれる人に感謝します。
事前にたくさんの感謝を。