[Помогите] Не работает 301 Redirect

Тема в разделе "OpenCart", создана пользователем Ever, 6 фев 2014.

  1. Ever

    Ever

    Регистрация:
    4 сен 2013
    Сообщения:
    64
    Симпатии:
    11
    Подскажите почему не работает 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
    
     
  2. yurets86

    yurets86

    Регистрация:
    13 апр 2013
    Сообщения:
    394
    Симпатии:
    328
    из-за 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]
     
  3. Ever

    Ever

    Регистрация:
    4 сен 2013
    Сообщения:
    64
    Симпатии:
    11
    Переделал на:
    RewriteCond %{QUERY_STRING} ^product/manufacture$
    RewriteRule ^index.php$ http://tirplus.crimea.ua/index.php?route=manufacturer [R=301,L]
    Все равно не работает!
    как убрать эту часть?
     
  4. yurets86

    yurets86

    Регистрация:
    13 апр 2013
    Сообщения:
    394
    Симпатии:
    328
    а если попробывать
    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]
    пробуй
     
    Ever нравится это.
  5. Ever

    Ever

    Регистрация:
    4 сен 2013
    Сообщения:
    64
    Симпатии:
    11
    Добавил после:
    Код:
    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 ???
     
  6. yurets86

    yurets86

    Регистрация:
    13 апр 2013
    Сообщения:
    394
    Симпатии:
    328
    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]
     
  7. Ever

    Ever

    Регистрация:
    4 сен 2013
    Сообщения:
    64
    Симпатии:
    11
    Если ее изменить на
    Код:
    RewriteRule ^index.php$ http://tirplus.crimea.ua/manufacturer [R=301,L]
    то перенаправляет на
    Код:
    http://tirplus.crimea.ua/manufacturer?route=product/manufacturer
    как избавится от ?route=product/manufacturer ???
     
  8. yurets86

    yurets86

    Регистрация:
    13 апр 2013
    Сообщения:
    394
    Симпатии:
    328
    а у тебя сео работает вообще ?)
     
  9. Ever

    Ever

    Регистрация:
    4 сен 2013
    Сообщения:
    64
    Симпатии:
    11
    ЧПУ включено и алиасы прописаны и все вроде нормально Вот: http://tirplus.crimea.ua/
    Только вот со страницей производителей ничего не получается(
     
    Последнее редактирование: 6 фев 2014
  10. Ever

    Ever

    Регистрация:
    4 сен 2013
    Сообщения:
    64
    Симпатии:
    11
    Есть ли еще у кого какие идеи?
     
  11. nick885

    nick885

    Регистрация:
    14 мар 2013
    Сообщения:
    101
    Симпатии:
    40
  12. Ever

    Ever

    Регистрация:
    4 сен 2013
    Сообщения:
    64
    Симпатии:
    11
  13. alexpet

    alexpet

    Регистрация:
    15 янв 2014
    Сообщения:
    50
    Симпатии:
    22
    Так а вы seo url для ссылки "?route=product/manufacturer" прописывали? если да, то как?
     
  14. Ever

    Ever

    Регистрация:
    4 сен 2013
    Сообщения:
    64
    Симпатии:
    11
    Так причемсдесь это?
    Может как то сделать редирект через php?
     
  15. Andrews32

    Andrews32

    Регистрация:
    7 мар 2014
    Сообщения:
    1
    Симпатии:
    0
    Не совсем в тему, но может кому пригодится.
    Если у вас включены ЧПУ, SEO Pro и нужно создать 301 редирект, допустим, со страницы /page1 на страницу /page2
    (я перепробовал всё, и ничего не помогло, кроме этого).
    создаем на сервере папку /page1/ , в ней - файл index.php в котором прописываем 301 redirect на /page2
    Как это работает:
    1) если на сервере есть папка со схожим именем (разница только в "/" ), то сначала OpenCart (сервер?) редиректит нас с /page1 на /page1/
    2) и уже затем /page1/index.php перенаправляет нас куда нужно.
    Костыль, но работает. В итоге имеем 2 последовательный 301-ых, но это лучше, чем ни одного.
    К слову, поисковые системы спокойно переваривают 2*301 (а вот больше двух перенаправлений подряд они не поймут, о чём говорится в руководстве Google).
     
  16. weghjn

    weghjn

    Регистрация:
    27 июн 2013
    Сообщения:
    215
    Симпатии:
    145
    Не мог настроить 301 редирект со старой страницы с продуктом на новую.Помог такой способ...

    RewriteCond %{QUERY_STRING} ^_route_=категория/старый адрес.html$
    RewriteRule ^(.*)$ http://мой.сайт/категория/новый адрес.html/? [R=301,L]
     
  17. Ro0oM

    Ro0oM

    Регистрация:
    28 окт 2015
    Сообщения:
    2
    Симпатии:
    0
    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
    Буду оооочень признателен.
     
  18. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Это лишнее. Если алиас для этой странице вписан в таблицу url_alias, то всё будет работать без дополнительных директив в .htaccess через общий механизм. И с пагинацией тоже прблем не будет.
     
  19. orel95

    orel95

    Регистрация:
    23 окт 2017
    Сообщения:
    1
    Симпатии:
    0
    Спасибо большое! Сделал все по вашему примеру и редирект заработал!