[Решено] Внутренний редирект

Тема в разделе "OpenCart", создана пользователем Love-world, 12 дек 2017.

Статус темы:
Закрыта.
  1. Love-world

    Love-world

    Регистрация:
    17 июл 2013
    Сообщения:
    161
    Симпатии:
    75
    Как сделать внутренний редирект на oc 2, при включенном seo url, через .htaccess? Стандартными способами не получается.
    Хочу поудалять ненужные пункты, к примеру в аккаунте (бонусные баллы, файлы для скачивания, платежи и т.п.),, и заредиректить их на главную, так на всякий случай. Как это сделать?
     
    Последнее редактирование: 12 дек 2017
  2. spy

    spy

    Регистрация:
    15 янв 2013
    Сообщения:
    468
    Симпатии:
    137
    можно в роботе закрыть и ссылки поубирать, и за них вобще никто не будет знать
    можно в пхп прямо в этих страницах редиректы сделать ну или
    средствами апача как на любом сайте
    Код:
    Redirect 301 /tovar/ http://site.ru/tovar1/
    или
    Код:
    RewriteCond %{REQUEST_URI} ^/tovar/$
    RewriteRule ^.*$ http://site.ru/new-tovar/? [R=301,L]
     
  3. Love-world

    Love-world

    Регистрация:
    17 июл 2013
    Сообщения:
    161
    Симпатии:
    75
    пробовал оба варианта, не работает..
    по поводу робота, все что касается аккаунта вроде как и так, по-умолчанию там закрыто, тут скорее при ручном вводе в адресную строку, чтоб редирект срабатывал хочется.
     
  4. Dotrox

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

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Нельзя так делать!
    За директиву Redirect отвечает mod_alias в то время, как ОК уже использует для работы ЧПУ mod_rewrite. Их комбинация может приводить к непредсказуемым последствиям, поскольку они работают независимо друг от друга.

    Значит неправильно пробовали. Значение имеют не только сами директивы, но и их порядок в .htaccess.
    Покажите полное содержимое вашего .htaccess с этим редиректом.


    Уверен, вам нужен не он. "Внутренний редирект" означает, что заходя, например, на страницу бонусных баллов посетитель будет в адресной строке видеть ссылку на эту страницу, но контент с главной страницы. Вам нужен обычный редирект.
     
  5. Love-world

    Love-world

    Регистрация:
    17 июл 2013
    Сообщения:
    161
    Симпатии:
    75
    .htaccess юзаю родной, ocstore'вский, ничего в нем не менял просто переименовал.
    Правила пробовал прописывать и перед родными и после первой строчки, и вконце, одно и тоже. Максимум чего удалось достичь, мне хром выдавал, мол сайт выполнил слишком много редиректов.. Чистил куки и кеш браузера, Чистил кеш опенкарта, ничего не работает..
     
  6. spy

    spy

    Регистрация:
    15 янв 2013
    Сообщения:
    468
    Симпатии:
    137
    Love-world, а точно апач используется, может nginx?
     
  7. Dotrox

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

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Вы всё-таки покажите, что именно вы делали. Если Хром ругался на циклические редиректы, значит ваши правки таки работают, просто правки неправильные.
     
  8. Love-world

    Love-world

    Регистрация:
    17 июл 2013
    Сообщения:
    161
    Симпатии:
    75
    пробовал уот так уот
    Redirect 301 /tovar/ http://site.ru/tovar1/
    так уот
    Redirect 301 ^/tovar/$ http://site.ru/tovar1/
    отак уот
    Redirect 301 ^/tovar/ http://site.ru/tovar1/
    уууууутак уот
    Redirect 301 /tovar/$ http://site.ru/tovar1/
    оуоуотак уот
    Redirect 301 /tovar/ /

    далее все тоже самое, но в другой позе:
    и уот так уот
    RedirectPermanent 301 /oldpage.php http://site/newpage.php
    и даже уот так уот (с лубрикантами, насколько я понимаю)
    RewriteCond %{REQUEST_URI} ^/test/$
    RewriteRule ^.*$ http://site.ru/new-test/? [R=301,L]

    пробовал писать все это
    1. В самом начале хтакцесса
    2. После RewriteBase /
    3. В самом конце хтакцесса

    сразу оговорюсь, бубен не доставал, но подумываю..

    содержимое хутакцессй (родной ocstor'евский)
    Код:
    # 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 "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
     Require all denied
    ## For apache 2.2 and older, replace "Require all denied" with these two lines :
    # Order deny,allow
    # Deny from all
    </FilesMatch>
    
    # SEO URL Settings
    RewriteEngine On
    # If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/
    
    RewriteBase /
    RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]
    RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L]
    RewriteRule ^system/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
    
    ### Display PHP errors
    ### Uncomment the commands by removing the # sign in front of it.
    # php_flag display_startup_errors on
    # php_flag display_errors on
    # php_flag html_errors on
    # php_flag track_errors on
    # php_value error_reporting "E_ALL"
    
    ) Ну что, неужели никому не приходилось пользоваться редиректом?!
     
    Lasted edited by : 14 дек 2017
  9. Dotrox

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

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Почти все - это mod_alias, который нельзя использовать (о чём я уже писал выше).
    А единственный редирект из mod_rewrite - неправильный.
    Там же нужен самый простой из редиректов:
    Код:
    RewriteRule ^test$ /new-test [R=301,L]
     
    Love-world нравится это.
  10. Love-world

    Love-world

    Регистрация:
    17 июл 2013
    Сообщения:
    161
    Симпатии:
    75
    Спасибо, наконец таки сработало! Тем, кто возможно, когда-нибудь будет это читать, прописывайте правила после "RewriteBase /", обращайте внимание, на указанное в seopro окончание, прописывать нужно вместе с окончанием например: RewriteRule ^from.html$ /to [R=301,L]
    Тему можно закрывать!)
     
Статус темы:
Закрыта.