У меня проблема с довольно старым siye. У меня есть общий URL-адрес с строкой запроса, которую я хочу перенаправить 301, но я не хочу, чтобы накладывать повторно URL-адреса. Я хочу выбрать, где каждая строка запроса перенаправляется, поскольку на сайте есть много разных категорий. Например:Htaccess Переписать строку с одним запросом
Я хочу изменить:
index.php?_a=viewCat&catId=199
к:
/garden-furniture/patio-furniture/garden-benches-garden-seats/cat_199.html
Но больной хочет изменить другой CATID другому URL моего выбора, совершенно другую структуру. У меня проблема с кодом, который у меня есть, если у меня нет? в конце URL-адреса назначения он работает, но добавляет строку запроса до конца, если я положил ее на конец, она не перенаправляется вообще.
код я использую:
RewriteCond %{QUERY_STRING} ^_a=viewCat&catId=199
RewriteRule ^index\.php$ /garden-furniture/patio-furniture/garden-benches-garden-seats/cat_199.html? [L,R=301]
Любая помощь будет оценен по достоинству!
EDIT: Остальная часть моего HTAccess
RewriteEngine On
RewriteRule ^conservatory/(.*)$ /conservatory-furniture/$1 [R=301,L]
RewriteRule ^dining-room/(.*)$ /dining-room-furniture/$1 [R=301,L]
RewriteRule ^garden/(.*)$ /garden-furniture/patio-furniture/$1 [R=301,L]
RewriteBase/
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule cat_([0-9]+)(\.[a-z]{3,4})?(.*)$ index.php?_a=viewCat&catId=$1&%1 [NC]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule prod_([0-9]+)(\.[a-z]{3,4})?$ index.php?_a=viewProd&productId=$1&%1 [NC]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule info_([0-9]+)(\.[a-z]{3,4})?$ index.php?_a=viewDoc&docId=$1&%1 [NC]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule tell_([0-9]+)(\.[a-z]{3,4})?$ index.php?_a=tellafriend&productId=$1&%1 [NC]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule _saleItems(\.[a-z]+)?(\?.*)?$ index.php?_a=viewCat&catId=saleItems&%1 [NC,L]
Перенаправление должно работать независимо от того, перекрывая строку запроса или нет. Что происходит * точно *, когда вы добавляете знак вопроса в конце подстановки? А есть ли у вас другие правила? –
Если я положу? в конце, тогда ссылка просто ломается при ее перенаправлении. Говорит, что он не может отобразить страницу (поэтому я предполагаю, что строка запроса не отправляется, поэтому нет страницы для создания?) У меня есть другие правила, они просто создают дружественные URL-адреса, к которым я перенаправляю. – user2099163
Думаю, вместе с соответствующим другим правилом у вас бесконечный цикл. Возможно, этот другой ответ помогает http://stackoverflow.com/a/15165778/1741542 –