#101 2012-02-29 01:51

gora4o
Пользователь

Re: Как сделать редирект если в URL /shop/

На сайте настраиваются редиректы с http://сайт.com.ua/index.html, http://сайт.com.ua/index.php на адрес вида http://сайт.com.ua/ вот таким образом:

Код:

RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php|html)\ HTTP
RewriteRule ^(.*)index\.(php|html)$ /$1 [R=301,L]

Отредактировано gora4o (2012-02-29 01:52)

Неактивен

 

#102 2012-02-29 20:04

www.po.kiev.ua
Пользователь

Re: Как сделать редирект если в URL /shop/

gora4o написал:

На сайте настраиваются редиректы с http://сайт.com.ua/index.html, http://сайт.com.ua/index.php на адрес вида http://сайт.com.ua/ вот таким образом:

Код:

RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php|html)\ HTTP
RewriteRule ^(.*)index\.(php|html)$ /$1 [R=301,L]

Не блокирует переход по ссылке из письма с уведомлением о заказе на страницу статуса заказа?

Неактивен

 

#103 2012-02-29 22:22

gora4o
Пользователь

Re: Как сделать редирект если в URL /shop/

www.po.kiev.ua написал:

gora4o написал:

На сайте настраиваются редиректы с http://сайт.com.ua/index.html, http://сайт.com.ua/index.php на адрес вида http://сайт.com.ua/ вот таким образом:

Код:

RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php|html)\ HTTP
RewriteRule ^(.*)index\.(php|html)$ /$1 [R=301,L]

Не блокирует переход по ссылке из письма с уведомлением о заказе на страницу статуса заказа?

Все хорошо работает, тестировал лично)

Неактивен

 

#104 2012-03-01 03:31

www.po.kiev.ua
Пользователь

Re: Как сделать редирект если в URL /shop/

А сможет кто-нибудь написать правило удаляющее в конце url два и больше слеша и оставляющее один завершающий?
Т.е. чтобы происходил редирект с ваш.сайт.ру//// на ваш.сайт.ру/

Неактивен

 

#105 2012-09-18 18:37

www.po.kiev.ua
Пользователь

Re: Как сделать редирект если в URL /shop/

gora4o написал:

Обновил ссылку

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

Неактивен

 

#106 2012-10-10 17:35

chebj
Пользователь

Re: Как сделать редирект если в URL /shop/

а если прописать две любые буквы в конце, 404 не срабатывает. Как убрать кто знает?
site.ru=site.ru/любые две буквы

Неактивен

 

#107 2012-10-10 17:49

rat
Администратор

Re: Как сделать редирект если в URL /shop/

Попробуйте в файле published/SC/html/scripts/classes/class.furl.php заменить код метода __parsePath на вот такой:

Код:

function __parsePath(){
  $path_parts = explode('/', $this->__path);
  $this->__path_settings = array();
  $parts_num = count($path_parts);
  $i = 0;

  while($parts_num > $i++){

    $part_value = array_shift($path_parts);
    if(!$part_value)break;
    switch ($i){
      case 1:
        if(strlen($part_value) == 2){//It is language iso2
          $languageEntry = LanguagesManager::getLanguageByISO2($part_value);
          if(!is_null($languageEntry)&&$languageEntry->enabled){

            LanguagesManager::setCurrentLanguage($languageEntry->id, false);
            $this->__path_settings['language_iso2'] = $part_value;
            $this->__path_settings['get'] .= '&lang_iso2='.$part_value;
          }
          break;
        }
        if(in_array($part_value,array('facebook','vkontakte'))){
          $this->__path_settings['store_mode'] = $part_value;
          $this->__path_settings['get'] .= '&store_mode='.$part_value;
          break;
        }
      default:
        switch ($part_value){
          case 'referral':
            $this->__path_settings['get'] = '&refid='.array_shift($path_parts);
            continue;
          case 'category':
            if (!isset ($this->__path_settings['ukey'])){ //добавлено условие
              $this->__path_settings['category_slug'] = str_replace('.html', '', array_shift($path_parts));
              $this->__path_settings['category_search'] = false;
              if(isset($path_parts[0]) && $path_parts[0] == 'search'){
                $this->__path_settings['category_search'] = true;
              }
              $this->__path_settings['update_sys_handler'] = 'category';
            }
            continue;
          case 'product_widget':
            $this->__path_settings['product_widget'] = true;
          case 'product':
            if (!isset ($this->__path_settings['ukey'])){ //добавлено условие
              $this->__path_settings['update_sys_handler'] = 'product';
              $this->__path_settings['product_slug'] = str_replace('.html', '', array_shift($path_parts));
            }
            continue;
          case 'blog':
            $part_value = 'news';
          case 'news':
            $this->__path_settings['ukey'] = str_replace('.html', '', $part_value);
            if(isset($path_parts[0]) && strpos($path_parts[0], 'page')===0){

              $this->__path_settings['page'] = intval(substr($path_parts[0], 4));
            }
            if(intval($path_parts[0]) > 0)
            {
                $this->__path_settings['get'] = '&blog_id='.intval($path_parts[0]);
            }
            continue;
          case 'compare':
            $this->__path_settings['ukey'] = 'product_comparison';
            $this->__path_settings['update_sys_handler'] = '';
            continue;
          case 'myaccount':
            $this->__path_settings['ukey'] = 'office';
            continue;
          case 'transaction':
            $this->__path_settings['ukey'] = 'transaction_result';
            $this->__path_settings['get'] .= '&transaction_result='.array_shift($path_parts);
            continue;
          default:
            if(strpos($part_value, 'page')===0){

              $part_value = str_replace('.html', '', $part_value);
              $this->__path_settings['get'] .= '&page='.intval(substr($part_value, 4));
            }elseif(strpos($part_value, 'offset') === 0){

              $part_value = str_replace('.html', '', $part_value);
              $this->__path_settings['get'] .= '&offset='.intval(substr($part_value, 6));
            }elseif(strpos($part_value, 'all') === 0){

              $this->__path_settings['get'] .= '&show_all=1';
            }elseif(!array_key_exists('ukey', $this->__path_settings)){

              $this->__path_settings['ukey'] = str_replace(array('.html','.php'), '', $part_value);
            }
            continue;
        }

        break;
    }
  }
}

Неактивен

 

#108 2012-10-10 22:27

chebj
Пользователь

Re: Как сделать редирект если в URL /shop/

Не помогает

Неактивен

 

#109 2012-10-31 18:29

vera-s
Пользователь

Re: Как сделать редирект если в URL /shop/

Мне тоже не помогло

Неактивен

 

#110 2012-11-01 03:57

www.po.kiev.ua
Пользователь

Re: Как сделать редирект если в URL /shop/

Кактоя в этой теме уже совсем запутался. Кому что не помогает фиг поймешь. 5 страниц обо всем на свете.

Неактивен

 

#111 2012-11-01 05:33

vera-s
Пользователь

Re: Как сделать редирект если в URL /shop/

если прописать две любые буквы в конце, 404 не срабатывает. Как убрать кто знает?
site.ru=site.ru/любые две буквы

Попробуйте в файле published/SC/html/scripts/classes/class.furl.php заменить код метода __parsePath на вот такой:

Код .............. , который указал  rat

Этот код не помогает избавиться.
site.ru/df  ведет на  site.ru

Неактивен

 

#112 2012-11-01 06:16

www.po.kiev.ua
Пользователь

Re: Как сделать редирект если в URL /shop/

Мда, топик нужно переименовать в "вопросы обо всем"

Неактивен

 

#113 2012-11-27 21:52

mylnyi
Пользователь

Re: Как сделать редирект если в URL /shop/

Rusich написал:

Внесу лепту по поводу завершающего слеша в url:
Добавить завершающий слэш
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

Удалить завершающий слэш
RewriteBase /
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301] 

А то когда до топа децл не хватает и такие вещи становятся актуальны.

хорошее решение, но вот только оно не годится для магазинов webasyst.
После установки такого редиректа (в моем случае добавлял слеш в конце) перестает работать система оценки продуктов. При попытке поставить оценку продукту, пользователя перебрасывает на главную страницу, а адресная строка выглядит просто ужасающе, и после этого с каждым новым переходом по сайту, адресная строка все увеличивается в размерах добавляя все новые урлы в конце.

Есть у кого-нибудь более правильное решение как добавлять в конце адреса слеш??

Отредактировано mylnyi (2012-11-27 21:54)

Неактивен

 

#114 2012-11-28 03:05

Ковалев Антон
Пользователь

Re: Как сделать редирект если в URL /shop/

Неактивен

 

#115 2013-01-11 10:00

Kublyakov
Пользователь

Re: Как сделать редирект если в URL /shop/

Всем привет. И всё таки по основной теме топика (про /shop/)
Решил убрать странички вида */shop/* в принципе реализацию я понял, но вот упадет ли сайт в выдаче Гугла если проиндексированы ссылки обоих видов? В яндексе ссылки */shop/* не проиндексированы, хотя в роботсе их не закрывал.
Если прописать 301 редирект и disallow: /shop - гугл адекватно отнесется к этому и просто поменяет ссылки, или в выдаче просядет сайт?
Заранее спасибо за ответы!

Неактивен

 

#116 2013-01-11 11:38

www.po.kiev.ua
Пользователь

Re: Как сделать редирект если в URL /shop/

Kublyakov написал:

Если прописать 301 редирект и disallow: /shop

Если прописать 301 редирект, то в robots disallow: /shop/ писать не нужно.
Не должен просесть, чего ему просаживаться?

Неактивен

 

#117 2013-01-11 12:35

Kublyakov
Пользователь

Re: Как сделать редирект если в URL /shop/

Я директору тоже самое сказал. Но он сказал уточнить smile Спасибо за ответ!

Неактивен

 

#118 2013-01-17 05:40

www.po.kiev.ua
Пользователь

Re: Как сделать редирект если в URL /shop/

Если прописать 301 редирект, то в robots disallow: /shop/ писать не нужно.

Обратите только внимание на то, что disallow: /shop/ писать в роботс не нужно в случае если есть ридерект.
Т.е. если пропишите то от этого станет не лучше, а хуже (если есть уже проиндексированные страницы с /shop/ или внешние ссылки).

Отредактировано www.po.kiev.ua (2013-01-17 05:41)

Неактивен

 

#119 2013-01-29 12:16

simons
Пользователь

Re: Как сделать редирект если в URL /shop/

а как сделать что б из категорий перенаправляло в имя категории то есть так сайт/category/ и сайт/product/ перенаправляло на просто сайт/videoregistratory/ и сайт/avtoregistrator-hd-dvr
у меня прописано так

Код:

RewriteRule ^category/(.*)$ /$1 [L,R=301]
RewriteRule ^product/(.*)$ /$1 [L,R=301]

но что то не пашет sad подскажите плс

Неактивен

 

#120 2013-02-03 05:09

www.po.kiev.ua
Пользователь

Re: Как сделать редирект если в URL /shop/

simons написал:

а как сделать что б из категорий перенаправляло в имя категории то есть так сайт/category/ и сайт/product/ перенаправляло на просто сайт/videoregistratory/ и сайт/avtoregistrator-hd-dvr
у меня прописано так

Код:

RewriteRule ^category/(.*)$ /$1 [L,R=301]
RewriteRule ^product/(.*)$ /$1 [L,R=301]

но что то не пашет sad подскажите плс

Эти УРЛы скрипт формирует, нужно делать доработку кода, а не редирект.

Неактивен

 

#121 2013-04-10 18:49

beauti65
Пользователь

Re: Как сделать редирект если в URL /shop/

Уважаемый  www.po.kiev.ua,
Пытаюсь решить проблему дублей, собрал с форума все варианты, но вот это побороть не могу, помогите пожалуйвста:
http://домен.ru/category/все что угодно
http://домен.ru/category/название подкатегории/////////////////////////////////////
http://домен.ru/category/название подкатегории%5B%5Djfs%5D%5Bylk%5Bplkhes/

вот мой .htaccess

Код:

# WebAsyst .htaccess config
AddDefaultCharset UTF-8
Options -Indexes
DirectoryIndex index.php
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.мойдомен.ru [NC]
RewriteRule ^(.*)$ http://мойдомен.ru/$1 [L,R=301]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteCond %{REQUEST_URI} !^.*vote.*$
RewriteRule ^(.*)$ /$1/ [R=301,L]
RewriteRule ^(category|category/)$ / [NC,R=301,L]

# for category
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)(/compare|/offset)(.*)
RewriteRule ^category/(.*)/(.+) /category/$1 [NC,R=301,L]

RewriteCond %{REQUEST_URI} !^(/en/|/category/|/vkontakte/)(.*)
RewriteRule ^(.*)/category/(.*)$ /category/$2 [NC,R=301,L]
RewriteCond %{REQUEST_URI} !^(/en/|/product/|/vkontakte/)(.*)
RewriteRule ^(.*)/product/(.*)$ /product/$2 [NC,R=301,L]

RewriteRule ^(category/|category)$ / [NC,R=301,L]
RewriteRule ^category/([^/]+)$ http://%{HTTP_HOST}/category/$1/ [R=301,L,QSA]
RewriteRule ^(.*)/category/([^/]+)$ http://%{HTTP_HOST}/$1/category/$2/ [R=301,L,QSA]
RewriteRule ^product/([^/]+)$ http://%{HTTP_HOST}/product/$1/ [R=301,L,QSA]
RewriteRule ^(.*)/product/([^/]+)$ http://%{HTTP_HOST}/$1/product/$2/ [R=301,L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)(/vkontakte|/compare|/offset|/all)(.*)
RewriteRule ^category/(.*)/(.+) /category/$1 [NC,R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)(/vkontakte|/reviews|/\?view\=printable)(.*)
RewriteRule ^product/(.*)/(.+) /product/$1 [NC,R=301,L]

#shop
RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^shop/(repo_themes|js|3rdparty|images_common|products_pictures|images|themes|css)/(.*)$ published/SC/html/scripts/$1/$2?frontend=1 [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^shop/(imgval.php|wbs_messageserserver.php) published/SC/html/scripts/$1 [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^(repo_themes|js|3rdparty|images_common|products_pictures|images|themes|css)/(.*)$ published/SC/html/scripts/$1/$2?frontend=1 [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^(imgval.php|wbs_messageserserver.php|get_file.php) published/SC/html/scripts/$1 [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule ^shop(.*) published/SC/html/scripts/$1&frontend=1 [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule ^photos/(album|view)/(.*) photos/index.php?q=$1/$2 [L,QSA]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule ^photos/fullsize/(.*)/(.*) photos/getfullsize.php?filename=$1&hash=$2 [L,QSA]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule ^photos/(.+)$ photos/index.php?q=$1 [L,QSA]


#common
RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^login/(.*) login/index.php [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^installer/(.*) installer/index.php [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule ^published/$ published/index.php [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteCond  %{REQUEST_URI} !^published
RewriteRule (.*) published/SC/html/scripts/index.php?__furl_path=$1&frontend=1 [QSA]

Неактивен

 

#122 2013-04-12 20:01

beauti65
Пользователь

Re: Как сделать редирект если в URL /shop/

помогите решить деллему деллему, please !

Неактивен

 

#123 2013-04-12 21:44

www.po.kiev.ua
Пользователь

Re: Как сделать редирект если в URL /shop/

beauti65 написал:

Пытаюсь решить проблему дублей, собрал с форума все варианты, но вот это побороть не могу, помогите пожалуйста:
http://домен.ru/category/все что угодно
http://домен.ru/category/название подкатегории/////////////////////////////////////
http://домен.ru/category/название подкатегории%5B%5Djfs%5D%5Bylk%5Bplkhes/

http://домен.ru/category/все что угодно - все что угодно в данном случае, это название категории.
http://домен.ru/category/название подкатегории///////////////////////////////////// Вопрос про Webasyst Shop-Script или Shop-Script 5 ? У Webasyst Shop-Script  нет в URLах название подкатегории. // закрывается в robots.txt Disallow: *// (на всякий случай перепроверьте после изменения в инструментах Яндекса.)
Добавление %5D%5B к имени категории дает ошибку 404. Вы точно спрашиваете про Webasyst Shop-Script ?

Неактивен

 

#124 2013-04-13 01:11

beauti65
Пользователь

Re: Как сделать редирект если в URL /shop/

Описанная проблема носит двоякий характер: с одной стороны дубли в Яндексе, с другой не корректно работающая 404 ошибка. Обе проблемы очень актуальные, т.е. и решать их надо обе. вот только как?

http://домен.ru/category/все что угодно - все что угодно в данном случае, это название категории.

ну так ведь не должно быть, чтобы несуществующая страница открывалась, должна 404 ошибка выскакивать, а она не выскакивает.

http://домен.ru/category/название подкатегории///////////////////////////////////// Вопрос про Webasyst Shop-Script или Shop-Script 5 ? У Webasyst Shop-Script  нет в URLах название подкатегории. // закрывается в robots.txt Disallow: *// (на всякий случай перепроверьте после изменения в инструментах Яндекса.)

Вопрос про Webasyst Shop-Script, версия 306 (не обновляюсь тк доработок было оч. много)

Добавление %5D%5B к имени категории дает ошибку 404. Вы точно спрашиваете про Webasyst Shop-Script ?

у меня не выдает почему-то

Отредактировано beauti65 (2013-04-16 11:29)

Неактивен

 

#125 2013-04-13 01:56

Ковалев Антон
Пользователь

Re: Как сделать редирект если в URL /shop/

beauti65 написал:

(не обновляюсь тк доработок было оч. много)

Дело, видимо, в доработках, ибо по дефолту такие урлы отдают 404.

Неактивен

 

Board footer

Powered by PunBB