редирект index php route

Практически каждый день сталкиваюсь с проблемами пользователей после вмешательств в htaccess. Не говоря уже о создаваемых постоянно темах на форуме с просьбами о помощи.

Порой из-за какой то ерунды типа изменения адреса одного товара происходит несколько страниц писанины бреда и конструированию огромных полотен правил.

Что НЕЛЬЗЯ делать через htaccess

В интернете десятки тысяч инструкций просто копируемых друг у друга десятилетиями. Очень многие из них вредны, т.к. были актуальны для сайтов на голом HTML без формирователя ЧПУ. Современные CMS самостоятельно строят формат адресации на сайте и нельзя вмешиваться в это через htaccess.

Наиболее распространенные вредные правила:

Что не нужно делать через htaccess

Множество единичных редиректов

Распространенные последcтвия вмешательства в htaccess

Часто ошибки всплывают со временем, когда обнаруживается выпадение страниц из поиска и идет разбор причин.

Когда нужно делать редиректы через htaccess

В глобальных правилах: за счет работы на более низком уровне, apache позволяет снизить расход ресурсов, т.к. их не много и требуется применение ко всем страницам.

Редирект с www на без оного, или наоборот

Редирект на https

Глобальные редиректы по маске

Пример как убрать product/ из адреса:

⚠ При наличии внешней ссылочной массы, желательно не менять адресацию на сайте, а перестроить формирователь ЧПУ и обойтись без редиректов.

⚠ Все глобальные правила дoлжны идти перед правилами CMS.

⚠ Правило WWW должно идти раньше чем https для исключения лишнего звена редиректа

Когда делать редиректы силами php (не CMS)

В случаях когда требуется настроить редиректы с адресов вида /product_info.php?products_id=123, /product/?id=345, и т.д., а именно когда есть возможность обратиться напрямую к php-файлу без инициализации CMS.

Разберем на примере site.com/product_info.php?products_id=XXX.

Создаем файл product_info.php в корне, где будет список редиректов и мини скрипт

не забываем в htaccess добавить в исключения путь /product_info.php* дабы избежать цепочек редиректов

Требование к менеджеру редиректов в CMS

Поиск/Проверка/Перебор не должен подключаться при каждом обращении к сайту, а только если страница не существует.

Разделение правил на части

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

Возможность использования дополнительных данных

Менеджер редиректов может использовать функционал CMS для получения ряда данных, которые затем могут использоваться в механизме автоматизации.

Когда делать редиректы силами CMS в менеджере редиректов

Нет опыта и квалификации в работе с htaccess

Последствия деятельности шаловливыми ручками описал выше. Даже имея опыт, часто можно допустить ошибку/опечатку случайно.

Множество правил

Использование инструмента CMS не приводит к засорению htaccess и ряду сопутствующих проблем.

Да и банально намного удобнее добавлять/удалять/следить/редактировать.

Правила не являются глобальными

Если взять средний сайт с 500 уникальными посетителями в день и средней глубиной 3. Это минимум 1500 обращений в день, на самом деле в разы больше. В неделю же минимум 10 тыс. Плюс боты. И если повезет одно обращение будет к искомой странице с редиректом, ради него будет 10 тыс раз читаться правило из htaccess.

Дополнительный функционал

Источник

Настройка правильного файла htaccess в Opencart

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Позволяет отдавать файлы, которые физически находятся за пределами root директории, но на которые есть ярлыки (symbolic link). Нужно для работы mod_rewrite

Запрет прямого доступа к файлам с указанными расширениями, кроме robots.txt. Тут же закомментировано сообщение:

Можно заменить на альтернативный тип записи.

Блок mod_rewrite

Включение модуля mod_rewrite для модификации SEO URL.

Область преобразования. В этом случае весь магазин. Можно ограничить директорией, если ваш сайт инсталлирован в директории, например: RewriteBase /shop

Во время обращения к XML карте сайта по URL site.com/sitemap.xml перенаправляет на site.com/index.php?route=extension/feed/google_sitemap

То есть на динамическую карту сайта, которая генерируется стандартным модулем Opencart.

Если предыдущие регулярные выражения из директив RewriteRule не подошли, выполнение идет дальше.

Если файл, указанный в запросе не существует, тогда проверка продолжается и может выполниться строка с директивой RewriteRule.
Если index.php присутствует, то проверка не прошла, директива RewriteRule не выполнится, а файл index.php в итоге и загрузится со всеми get-параметрами (если есть).

Если запрашиваемый каталог (папка) не существует

Если запрашивается не файл с одним из указанных расширений

Тогда любой запрос переадресовывается на site.com/index.php?_route_[после параметра _route_ подставляется то, что запрашивалось – любая строка указанная в URL после домена]

GET-параметры, с помощью регулярного выражения, подставляются в строке вместо «$1»

Данная директива выполнится, если в URL не был указан файл index.php, что происходит в т. ч. при включении ЧПУ URL. В процессе загрузки приложения, проверяется, было ли включено ЧПУ в настройках. Если нет, то при получении параметра _route_ осуществится вызов контроллера ‘common/home’, который выведет домашнюю (главную) страницу. Если же ЧПУ было включено, выполняется контроллер ControllerStartupSeoPro из файла catalog\controller\startup\seo_pro.php или другой выбранный, где параметр _route_ будет разобран на части и из таблицы базы данных url_alias по переданным в GET-запросе элементам найдены алиасы, которые укажут скрипту путь к контроллеру/методу, который необходимо вызвать для вывода страницы.

Далее идут дополнительные настройки, которые могут понадобиться в специфичных ситуациях.

Источник

301 Redirect Opencart 2 ЧПУ

Как же сделать правильный 301 редирект страниц с применением внутренних SEO ссылок OpenCart? Можно поискать готовые решения среди модулей Opencart 2, но быстрее это сделать вручную.

На днях появилась задача перенести магазин с малоизвестной cms на OpenCart. Но поскольку магазин работал уже давно и его знали поисковики надо было сохранить ссылки на разделы и товары.

К сожаление ссылки имели вид /ru/раздел/123 и при их подстановке в «SEO Keyword» из-за слешей они выдавали, что страницы не найдена.

Поэтому для сохранения «веса» в поисковиках и работы старых ссылок пришлось применять 301 redirect.

Написания 301 редиректа очень просто

Redirect 301 /старая-страница /новая-страница

Redirect 301 /ru/раздел/123 /index.php?route=product/category&path=59

Но если Вы используете ЧПУ ссылки, то тут становиться все немного сложнее.

Предположим, что ЧПУ ссылка раздела теперь будет выглядеть так new-page.html, то при записи

Redirect 301 /ru/раздел/123 /new-page.html вы получите страницу при редиректе типа http://site.com/new-page.html?_route_= index.php?new-page.html, которая выдаст «запрашиваемая страница не найдена».

Redirect 301 /ru/раздел/123 /index.php?route=product/category&path=59
RewriteCond % ^route=product/category&path=59$
RewriteRule ^index\.php /new-page.html? [R=301,L]

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Модуль Заказ в 1 клик Opencart 2

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Модуль Менеджер заказов Opencart 2

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Модуль Import YML Opencart 2

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Модуль Экспорт YML Opencart 2

Модуль экспорта товаров на площадку Яндекс.Маркет, Турбо-страницы и другие сервисы, которые принимаю..

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Модуль Горизонтальное мега-меню Opencart 2.x

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Модуль Вертикальное мегаменю для Opencart 2.x

Модуль для создания вертикального мега-меню в колонке на Opencart 2.x. Очень многофункциональное доп..

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Модуль Opencart Blog для Opencart 2.x

Большим недостатком системы Opencart 2.x является отсутствие нормального блога записей. Ведь почти к..

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Модуль Стикеры на товары для Opencart 2

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Модуль Скидки для групп покупателей Opencart 2.x

Модуль Скидки для групп покупателей или Total Customer Group Discount для Opencart 2.x позволяет зад..

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Модуль Отзывы о товарах Opencart 2

Модуль Отзывы о товарах на отдельной странице и в позиции на сайте для Opencart 2.0.Удобный модуль д..

Модуль Мультизагрузка картинок товара на Opencart 2

Модуль позволяет загружать и выбирать одновременно несколько картинок для товара. По умолчанию в O..

Источник

[HOW TO] Redirect «index.php?route=common/home» to main page

[HOW TO] Redirect «index.php?route=common/home» to main page

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Post by Johnathan » Wed Jul 21, 2010 10:38 am

Note that this won’t change the actual links in your store, but once clicked on, they’ll redirect to the main page without the «index.php?route=common/home» portion.

More tutorials are available at OpenCartX.com/tutorials

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Re: [HOW-TO] Rewrite «index.php?route=common/home» to main p

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Post by helenmarie » Wed Jul 21, 2010 11:14 pm

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Re: [HOW TO] Rewrite «index.php?route=common/home» to main p

Post by latty82 » Thu Apr 05, 2012 5:08 pm

Re: [HOW TO] Rewrite «index.php?route=common/home» to main p

Post by elion » Sun Jun 10, 2012 10:50 pm

Thank you, Johnathan!

I had thought to do this by changing the code, it was a faulty method.

Re: [HOW TO] Rewrite «index.php?route=common/home» to main p

Post by paulseer » Mon Jul 23, 2012 4:09 am

Re: [HOW TO] Rewrite «index.php?route=common/home» to main p

Post by paulseer » Mon Jul 23, 2012 4:17 am

ah forget that just found it and for any one wondering it is

RewriteCond % ^route=common/home$
RewriteRule ^index\.php$ /? [R=301,L]

So if you are running multistore this is the one

Re: [HOW TO] Rewrite «index.php?route=common/home» to main p

Post by nikespacessale » Sun Aug 12, 2012 3:11 pm

Re: [HOW TO] Rewrite «index.php?route=common/home» to main p

Post by AriesM » Tue Oct 15, 2013 3:17 pm

Re: [HOW TO] Redirect «index.php?route=common/home» to main

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Post by Johnathan » Thu Oct 17, 2013 11:04 pm

I revised the description in the original post to make this clearer, but this edit only redirects the common/home URL to the main page. It doesn’t change the actual link, but there are some edits that can do that in this topic:

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Re: [HOW TO] Redirect «index.php?route=common/home» to main

Post by rivera2419 » Fri Oct 18, 2013 2:51 am

I have an external website that adds items to the cart. Is there an htaccess modification to redirect the «Continue Shopping» button on the cart back to the specific URL of my website product page?

Re: [HOW TO] Redirect «index.php?route=common/home» to main

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Post by Johnathan » Fri Oct 18, 2013 4:43 am

Unfortunately no, because that button is hard-coded to link back to the main page. You’d need to have someone modify your installation to read some data from the URL when adding to the cart, so it could change the behavior of the button dynamically.

Источник

Редирект для интернет-магазина на Opencart: через плагин или htaccess

Редиректы для интернет-магазина на CMS Opencart можно выполнить добавив записи в файл htaccess, ознакомится с чем можно в статье ниже.

Как сделать редирект через файл htaccess для интернет-магазина на Opencart

Для того, чтобы перенаправить пользователя с одной страницы на другую требуется использовать следующую комбинацию:

Redirect 301 site.ru/page1/ site.ru/page2/

Важно! Можно записывать адреса в относительном виде, например, /page1/ и /page2/.

Также допускается использование конструкции:

Redirect permanent site.ru/page1/ site.ru/page2/

Для того, чтобы выполнить правило, потребуется посетить административную панель хостинга (или же зайти через FTP), где в корневой папке сайта на Opencart (public_html) лежит файл htaccess :

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Как сделать перенаправление на другой домен?

В этом случае необходимо автоматически перекидывать всех пользователей с домена domain1.ru на domain2.ru при помощи функции:

RewriteRule ^(.*)$ http://www.domain2/$1 [R=301,L]

Переадресация с http на https

При переезде сайта с http на https (установка SSL-сертификата) потребуется код, который не требует дополнительных модификаций:

Второй метод осуществляет перенос с http://domain.ru на https://domain.ru:

RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]

Третий способ выполняет аналогичную функцию, но отключает перенаправление для robots.txt:

RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]

В 4-й версии конечным пунктом для пользователя станет https://www.domain.ru:

RewriteRule ^(.*)$ https://www.domain.ru/$1 [R=301,L]

Позволяет сделать форвардинг с http://www.poddomen.domain.ru на https://poddomen.domain.ru:

RewriteCond % ^www\.poddomen\.domain\.ru$ [NC]

RewriteRule ^(.*)$ https://poddomen.domain.ru/$1 [R=301,L]

Последняя версия, дающая возможность сделать связь между http://poddomen.domain.ru на https://www.poddomen.domain.ru:

RewriteCond % ^poddomen\.domain\.ru$ [NC]

RewriteRule ^(.*)$ https://www.poddomain.domain.ru/$1 [R=301,L]

301 редирект с домена без WWW на с WWW

В функции ниже осуществляется переход из www.poddomen.domain.ru на poddomen.domain.ru:

RewriteCond % ^poddomen\.domain\.ru$ [NC]

RewriteRule ^(.*)$ http://www.poddomen.domain.ru/$1 [R=301,L]

Если же первый способ не помог можно использовать данную версию:

С www на без WWW

RewriteCond % ^www\.poddomen\.domain\.ru$ [NC]

RewriteRule ^(.*)$ http://poddomen.domain.ru/$1 [R=301,L]

Также имеется второй метод не требующий ввода доменного имени:

RewriteCond % !^poddomen\.domain\.ru$ [NC]

RewriteRule ^(.*)$ http://poddomen.domain.ru/$1 [R=301,L]

C https на http

При необходимости сделать обратную интеграцию и перейти на незащищенную версию протокола можно воспользоваться:

301 редирект на http для одной страницы

В этой ситуации подойдет:

Второй метод осуществляет общий переезд на защищенный протокол (https), но одна страница останется на старом протоколе (http). Этот способ подойдет для интеграции 1С Bitrix с 1С Предприятие, так как система не может работать с защищенным протоколом:

Для готовой интеграции с 1С-Битрикс, формула позволяющая исключить директорию bitrix/admin/1c_exchange.php из общего правила:

RewriteCond % !^/bitrix/admin/1c_exchange\.php$ [NC]

Форвардинг на https для конкретной страницы

Для этой цели можно воспользоваться:

RewriteCond % ^/Необходимая директория_страница$

С несуществующего файла

В этом случае можно будет применить:

RewriteRule ^(.*)$ /poddomen/script.php [R=301,L]

Также подойдет второй способ:

RewriteCond % !^poddomen\.domain\.ru$ [NC]

RewriteRule ^(.*)$ http://poddomen.domain.ru/$1 [R=301,L]

Перенаправление на подкаталог

В этом случае возможно пербрасывать пользователей с poddomen.domain.ru на подкаталог poddomen.

RewriteEngine on
RewriteBase /
RewriteCond % !^/poddomen
RewriteCond % ^poddomen.domain.ru$ [NC]
RewriteRule ^index.php(.*)$ /poddomen/$1 [L,QSA]

RewriteEngine on
RewriteBase /
RewriteCond % ^poddomen.domain.ru$
RewriteCond % !/poddomen/
RewriteRule ^(.*)$ /poddomen/$1 [L]

В случае, когда речь идет о www.poddomen.doamin.ru необходимо применить:

RewriteRule ^(.*)$ /poddomen/$1 [L]

С любой страницы на главную

RewriteRule ^(.*)$ index.php [L,QSA]

С поддомена на основной домен

Если требуется выполнить условие для всех поддоменов без исключения:

RewriteCond % ^(.+).domain.ru$
RewriteRule (.*) http://site.ru/$1?region=%1 [L,R=301,QSA]

Когда речь идет о конкретном поддомене следует использовать:

RewriteCond % ^poddomen.domain.ru$ [NC]
RewriteRule (.*) http://site.ru/$1?region=poddomen [L,R=301,QSA]

Как проверить работу 301 редиректа?

Для этого можно использовать инструмент проверки ответа сервера Яндекса:

Здесь вводим адрес первой страницы и видим следующее:

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Как видим правило применилось и работает корректно.

Возможные проблемы с сайтами Opencart (русской сборки OcStore)

При редактировании файла

Так как в русской сборке OcStore после установки файл имеет имя htaccess.txt следует для исправления выполнить следующую посетить корневую папку сайта и найти файл «.htaccess.txt».

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Переименовываем его и удаляем часть «.txt», так, чтобы файл назывался «.htaccess».

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Переходим в «Дополнения»-«Менеджер дополнений» и очищаем Кеш (кнопка в правом-верхнем углу).

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

При работе с HTTPS

В первую очередь следует проверить настройки магазина перед перенаправлением на https так как в противном случае сайт может работать некорректно или не работать вовсе.

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Далее переходим в сервер и выбираем.

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Прокручиваем список и во вкладке «Безопасность» ставим «Да» у «Использовать SSL».

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

После этого переходим в на сервер в корневую папку и проверяем файл «config.php».

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

В нем в части про HTTPS проверяем указан ли адрес сайта как «https://site.ru», если нет указываем.

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Аналогично следует проверить корректность отображения административной части, что необходимо сделать перейдя в папку «Admin».

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Теперь открываем еще один файла «config.php».

редирект index php route. Смотреть фото редирект index php route. Смотреть картинку редирект index php route. Картинка про редирект index php route. Фото редирект index php route

Аналогично ищем ссылки на сайт с защищенным протоколом define и при необходимости исправляем на правильные (с https).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *