Подскажите почему не работает 301 Redirect в opencart 1.5.6 с включенным сеоурл. Пробовал Redirect 301 /index.php?route=product/manufacturer http://site/manufacturer и RewriteRule index.php?route=product/manufacturer$ http://site/manufacturer [R=301,L] но все безуспешно, подскажите как правильно сделать редирект Нужно сделать редирект с http://site/index.php?route=product/manufacturer на http://site/manufacturer Вот весь htaccess: Код: # 1.To use URL Alias you need to be running apache with mod_rewrite enabled. # 2. In your opencart directory rename htaccess.txt to .htaccess. # For any support issues please visit: http://www.opencart.com Options +FollowSymlinks # Prevent Directoy listing Options -Indexes # Prevent Direct Access to files <FilesMatch "\.(tpl|ini|log)"> Order deny,allow Deny from all </FilesMatch> # SEO URL Settings RewriteEngine On RewriteCond %{HTTP_HOST} ^www.tirplus.crimea.ua$ [NC] RewriteRule ^(.*)$ http://tirplus.crimea.ua/$1 [R=301,L] # If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/ #Redirect 301 /index.php?route=product/manufacturer http://tirplus.crimea.ua/manufacturer #RewriteRule index.php?route=product/manufacturer$ http://tirplus.crimea.ua/manufacturer [R=301,L] RewriteBase / RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L] RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L] RewriteRule ^download/(.*) /index.php?route=error/not_found [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] ### Additional Settings that may need to be enabled for some servers ### Uncomment the commands by removing the # sign in front of it. ### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that. # 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it: # php_flag register_globals off # 2. If your cart has magic quotes enabled, This may work to disable it: # php_flag magic_quotes_gpc Off # 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try # php_value upload_max_filesize 999M # 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields # php_value post_max_size 999M # 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields # php_value max_execution_time 200 # 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields # php_value max_input_time 200 # 7. disable open_basedir limitations # php_admin_value open_basedir none
из-за index.php -вот так будет работать: Код: RewriteCond %{QUERY_STRING} ^ссылка_с_которой_будет_редирект$ RewriteRule ^index.php$ http://куда_будет_редиректится [R=301,L] --- Добавлено, 6 фев 2014 --- пример Код: RewriteCond %{QUERY_STRING} ^sh=1&page=4&idn=234$ RewriteRule ^index.php$ http://domain_name/index.php?route=manufacturer [R=301,L]
Переделал на: RewriteCond %{QUERY_STRING} ^product/manufacture$ RewriteRule ^index.php$ http://tirplus.crimea.ua/index.php?route=manufacturer [R=301,L] Все равно не работает! как убрать эту часть?
а если попробывать RewriteCond %{QUERY_STRING} ^route=product/manufacture$ --- Добавлено, 6 фев 2014 --- после Код: RewriteBase / RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L] RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L] RewriteRule ^download/(.*) /index.php?route=error/not_found [L] пробуй
Добавил после: Код: RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] Код: Код: RewriteCond %{QUERY_STRING} ^route=product/manufacturer$ RewriteRule ^index.php$ http://tirplus.crimea.ua/index.php?route=manufacturer [R=301,L] так работает но перекидывает на tirplus.crimea.ua/index.php?route=manufacturer как сделать чтобы перенаправляло на tirplus.crimea.ua/manufacturer ???
RewriteCond %{QUERY_STRING} ^route=product/manufacturer$ RewriteRule ^index.php$ http://tirplus.crimea.ua/index.php?route=manufacturer [R=301,L] вторая строчка как раз и указывает на какой урл тебя перебросить, RewriteRule ^index.php$ http://tirplus.crimea.ua/manufacturer [R=301,L]
Если ее изменить на Код: RewriteRule ^index.php$ http://tirplus.crimea.ua/manufacturer [R=301,L] то перенаправляет на Код: http://tirplus.crimea.ua/manufacturer?route=product/manufacturer как избавится от ?route=product/manufacturer ???
ЧПУ включено и алиасы прописаны и все вроде нормально Вот: http://tirplus.crimea.ua/ Только вот со страницей производителей ничего не получается(
Вот моя такая же тема http://wmasteru.ru/threads/Неправильный-301-редирект.11128/#post-93436 Может тебе, рекомендации которые в ней, помогут.
Не совсем в тему, но может кому пригодится. Если у вас включены ЧПУ, SEO Pro и нужно создать 301 редирект, допустим, со страницы /page1 на страницу /page2 (я перепробовал всё, и ничего не помогло, кроме этого). создаем на сервере папку /page1/ , в ней - файл index.php в котором прописываем 301 redirect на /page2 Как это работает: 1) если на сервере есть папка со схожим именем (разница только в "/" ), то сначала OpenCart (сервер?) редиректит нас с /page1 на /page1/ 2) и уже затем /page1/index.php перенаправляет нас куда нужно. Костыль, но работает. В итоге имеем 2 последовательный 301-ых, но это лучше, чем ни одного. К слову, поисковые системы спокойно переваривают 2*301 (а вот больше двух перенаправлений подряд они не поймут, о чём говорится в руководстве Google).
Не мог настроить 301 редирект со старой страницы с продуктом на новую.Помог такой способ... RewriteCond %{QUERY_STRING} ^_route_=категория/старый адрес.html$ RewriteRule ^(.*)$ http://мой.сайт/категория/новый адрес.html/? [R=301,L]
Ever! У тебя- RewriteCond %{QUERY_STRING} ^route=product/manufacturer$ RewriteRule ^index.php$ http://tirplus.crimea.ua/index.php?route=manufacturer [R=301,L] нужно в базу SQL предварительно воткнуть запрос: INSERT INTO url_alias (query, keyword) VALUES ('product/manufacturer', 'manufacturer'); а в .htaccess нужно прописать так (работает): RewriteCond %{QUERY_STRING} ^route=product/manufacturer$ RewriteRule ^index.php$ http://tirplus.crimea.ua/manufacturer? [R=301,L] Но не разобрался со страницами пагинации 1,2,3 - в них всё-равно вылазит route Если кто подскажет как пагинацию застолбить... tirplus.crimea.ua/manufacturer/?page=2 Буду оооочень признателен.
Это лишнее. Если алиас для этой странице вписан в таблицу url_alias, то всё будет работать без дополнительных директив в .htaccess через общий механизм. И с пагинацией тоже прблем не будет.