Samail: То есть вы для каждого товара собираетесь в ручную редиректы прописывать? При том что у вас только категорий там больше сотни? ЧПУ ссылки сам jshopping создаёт? По старым страницы открываются ...и да после изменений в .htaccess проверяйте результат хромом в режиме инкогнито, потому что "не помогает" возможно потому что старые редиректы кешируются браузером.
Да, для каждой. Не вручную - написан скрипт на php, который генерирует для каждой ссылки. Мне бы рабочий пример только :)
Я проверял - не работает. Если бы ссылки были без этого ?itemid то мой код работает. А с ними ноль реакция, даже когда экранирую знак вопроса.
У меня в голове только единственный вариант через php проверять урл, отрезать ?itemid перенаправлять на урл без него, а дальше уже моим кодом. В итоге будет перенаправлять куда надо, но это не 301 редирект и вес страниц, как понимаю, потеряется.
---------- Добавлено 20.10.2016 в 18:28 ----------
Sitealert: А не проще ли сразу прописать в Джумле правильные ссылки, а не грузить апач кучей лишних редиректов? Зачем формировать Itemid=0?
Был сделан редизайн сайт. С joomla перешли на opencart - itemid это наследие предыдущих разработчиков, судя по тому, что сделали с урлами - мастерами сео :)
---------- Добавлено 20.10.2016 в 18:29 ----------
Может есть вариант через .htaccess 301 редиректом отправлять на урл с отрезанным в конце ?itemid а дальше уже мои кодом?
---------- Добавлено 21.10.2016 в 03:16 ----------
Тогда уж проще сразу php скриптом и отправлять на нужную страницу.
Спасибо, ваш код работает!
То есть вы для каждого товара собираетесь в ручную редиректы прописывать? При том что у вас только категорий там больше сотни? ЧПУ ссылки сам jshopping создаёт? По старым страницы открываются ...и да после изменений в .htaccess проверяйте результат хромом в режиме инкогнито, потому что "не помогает" возможно потому что старые редиректы кешируются браузером.
Да, для каждой. Не вручную - написан скрипт на php, который генерирует для каждой ссылки. Мне бы рабочий пример только :)
Я проверял - не работает. Если бы ссылки были без этого ?itemid то мой код работает. А с ними ноль реакция, даже когда экранирую знак вопроса.
У меня в голове только единственный вариант через php проверять урл, отрезать ?itemid перенаправлять на урл без него, а дальше уже моим кодом. В итоге будет перенаправлять куда надо, но это не 301 редирект и вес страниц, как понимаю, потеряется.
---------- Добавлено 20.10.2016 в 18:28 ----------
А не проще ли сразу прописать в Джумле правильные ссылки, а не грузить апач кучей лишних редиректов? Зачем формировать Itemid=0?
Был сделан редизайн сайт. С joomla перешли на opencart - itemid это наследие предыдущих разработчиков, судя по тому, что сделали с урлами - мастерами сео :)
---------- Добавлено 20.10.2016 в 18:29 ----------
Может есть вариант через .htaccess 301 редиректом отправлять на урл с отрезанным в конце ?itemid а дальше уже мои кодом?
noVe, в каком случае редирект нужен? Если ссылка на компонент jshopping или все у которых Itemid=0?
Вопросительный знак экранируйте \?Itemid=0
Ссылки такого вида
component/jshopping/product/view/123/725?Itemid=0
component/jshopping/product/view/5/23?Itemid=0
Например, 123/725 - первая это id категории, второе id товара
?Itemid=0 - не знаю зачем там, но есть во всех ссылках каталога в конце.
Надо редирект с таких ссылок на новые чпу
Экранирование не помогло.
---------- Добавлено 20.10.2016 в 15:02 ----------
То есть,что значит "вида"? Если всё, что с Itemid=0, то
RewriteCond %{QUERY_STRING} ^Itemid=0.*$RewriteRule ^(.*)$ test.html [R=301,L]
Ссылки такого вида
component/jshopping/product/view/123/725?Itemid=0
component/jshopping/product/view/5/23?Itemid=0
Например, 123/725 - первая это id категории, второе id товара
?Itemid=0 - не знаю зачем там, но есть во всех ссылках каталога в конце.
Надо редирект с таких ссылок на новые чпу
Ваш код не помог.
;14732946']RewriteEngine on
RewriteCond %{QUERY_STRING} ^Itemid=0$
RewriteRule ^component/jshopping/product/view/123/725$ /test.html? [R=301,L]
Большое спасибо.
Но увы не работает.
А можно как нибудь удалять из урла ?Itemid=0
А уже потом моим редиректом?
Здравствуйте,
Подскажите, пожалуйста, как сделать редирект 301 через .htaccess для ссылок вида
http://site.ru/component/jshopping/product/view/123/725?Itemid=0
http://site.ru/test.html
Делаю так:
RewriteCond %{QUERY_STRING} ^_route_=component/jshopping/product/view/123/725?Itemid=0$RewriteRule ^(.*)$ http://site.ru/test.html? [R=301,L]
Но не работает с ?Itemid=0. Без него перенаправляет на вторую ссылку.
Сделал через java
window.location.href = "http://site.ru/primer/";
Или использовать переменную THE_REQUEST. Там будет полная строка запроса отправленная браузером "GET /itemnews.php?idn=300 HTTP/1.1".
Огромнейшее спасибо, jkm!
RewriteEngine On
RewriteCond %{QUERY_STRING} =option=com_content&task=view&id=34&Itemid=40
RewriteRule ^index\.php /name-page.html? [R=301,L]
Огромное спасибо! Уже сам дошел, что надо использовать RewriteCond/RewriteRule, но на этом месте завис. Еще раз спасибо, siv1987.