Странный вывод от RedirectMatch

Странный вывод от RedirectMatch

Я пробую 301-редиректы в .htaccess.

Я пытаюсь перенаправить что-то вроде этого:

http://creek.com/wines/red/greatwine

в

http://creek.com/shop/product/wines/red/greatwine

но я получаю следующий вывод

http://creek.com/shop/product/red/greatwine?/wines/red/greatwine

В wines есть много разных подкаталогов, поэтому мне нужно, чтобы они были подстановочными. Надеюсь, это понятно.

Пожалуйста, посмотрите мой .htaccess ниже. Спасибо за любую помощь!

RewriteEngine On
RewriteCond %{HTTP_HOST} !^creek.com$ [NC]
RewriteRule ^(.*)$ http://creek.com/$1 [L,R=301]

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteRule ^(.*)$ /index.php?/$1 [L]
</IfModule>

RedirectMatch 301 ^/wines/(.*)/(.*)$ http://creek.com/shop/product/$1

решение1

@Дэн прав.

Вам следует преобразовать ваш RedirectMatchв Rewriteи поместить его перед вашим <IfModule mod_rewrite.c>блоком:

RewriteCond %{REQUEST_URI} ^/wines/(.*)/(.*)
RewriteRule ^(.*)$ http://creek.com/shop/product/$1 [L,R=301]

Связанный контент