У меня есть следующие правила перезаписи:
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']
Последний пример должен соответствовать перезаписи [1]...
Я проверил правила с помощью тестера регулярных выражений, поставляемого с ape, и обнаружил, что экранирование ?
и .
не работает. Я немного сбит с толку и был бы признателен любому, кто мог бы пролить свет на то, почему это побег не работает.
Заранее огромное спасибо.