Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Где сменить ссылку на ГЛАВНУЮ ?


anrutez

Recommended Posts

У меня $url .= 'index.php?route=' . $route; отличается наличием $code

и если вставить ваш код после этой строки (в строку 24), то "Fatal error: Call to undefined method Url::rewrite() in Z:\home\mydomain.ru\www\system\library\url.php on line 46"

 

Привожу содержимое файла до вмешательства:

<?php
class Url {
	private $url;
	private $ssl;
	private $rewrite = array();
	
	public function __construct($url, $ssl = '') {
		$this->url = $url;
		$this->ssl = $ssl;
	}
		
	public function addRewrite($rewrite) {
		$this->rewrite[] = $rewrite;
	}
		
	public function link($route, $args = '', $connection = 'NONSSL', $code = '') {
		if ($connection ==  'NONSSL') {
			$url = $this->url;	
		} else {
			$url = $this->ssl;	
		}
		
		$url .= $code . 'index.php?route=' . $route;
			
		if ($args) {
			$url .= str_replace('&', '&', '&' . ltrim($args, '&')); 
		}
		
		foreach ($this->rewrite as $rewrite) {
			$url = $rewrite->rewrite($url, $code);
		}
				
		return $url;
	}
}
?>

Буду благодарен, если ответите кодом целиком. Я обещаю разобраться и понять, как только поднаберусь опыта :)

Надіслати
Поділитися на інших сайтах


+1 Похожая картина.

 

Имеется строка вида 

$url .= $code . 'index.php?route=' . $route;

 

При добавлении предложенного кода, адрес в главной становится / , но сайт недоступен.

Подскажите плиз как решить проблему с дублями главной

Надіслати
Поділитися на інших сайтах


Наткнулся в сети на такой вариант, в .htaccess прописывается:

 

RewriteCond %{QUERY_STRING} ^route=common/home$
RewriteCond %{REQUEST_METHOD} !^POST$
RewriteRule ^index\.php$ http://www.yoursite.ru? [R=301,L]
 
У меня работает.
Надіслати
Поділитися на інших сайтах


вот решение для тех кто ставил мультиланг.

проверено! все работает!

 

 


ploxot9 сказал(а) 09 Апр 2013 - 4:22 PM:snapback.png


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

 

1. Меняем в корне сайта htaccess.txt на htaccess

 

2. В админпанели во вкладке сервер 

 

Use seo url`s ставим ДА

тип чпу seopro

чпу товаров с категориями тоже ДА

окончание чпу ставим /

 

3. Качаем файл seopro_multilang.zip копируем к себе на сервер

 

4. Ставим vqmod

 

5. Заходим в phpmyadmin выполняем запрос

 

ALTER TABLE `oc_product_to_category` ADD `main_category` tinyint(1) NOT NULL DEFAULT '0';

 

не забываем поменять префикс на свой у меня был oc_ 

 

6. Меняем в корне сайта в файле index.php это

 

$controller->addPreAction(new Action('common/seo_url'));

 

на это

 

if (!$seo_type = $config->get('config_seo_url_type')) {

    $seo_type = 'seo_url';
}
$controller->addPreAction(new Action('common/' . $seo_type));

 

7. В phpmyadmin выполняем запросы

 

INSERT INTO oc_url_alias (query, keyword) VALUES ('common/home', '');

        INSERT INTO oc_url_alias (query, keyword) VALUES ('account/wishlist', 'wishlist');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('account/account', 'my-account');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('checkout/cart', 'shopping-cart');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('checkout/checkout', 'checkout');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('account/login', 'login');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('account/logout', 'logout');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('account/order', 'order-history');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('account/newsletter', 'newsletter');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('product/special', 'specials');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('affiliate/account', 'affiliates');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('checkout/voucher', 'gift-vouchers');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('product/manufacturer', 'brands');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('information/contact', 'contact-us');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('account/return/insert', 'request-return');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('information/sitemap', 'sitemap');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('account/forgotten', 'forgot-password');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('account/download', 'downloads');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('account/return', 'returns');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('account/transaction', 'transactions');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('account/register', 'create-account');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('product/compare', 'compare-products');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('product/search', 'search');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('account/edit', 'edit-account');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('account/password', 'change-password');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('account/address', 'address-book');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('account/reward', 'reward-points');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('affiliate/edit', 'edit-affiliate-account');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('affiliate/password', 'change-affiliate-password');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('affiliate/payment', 'affiliate-payment-options');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('affiliate/tracking', 'affiliate-tracking-code');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('affiliate/transaction', 'affiliate-transactions');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('affiliate/logout', 'affiliate-logout');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('affiliate/forgotten', 'affiliate-forgot-password');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('affiliate/register', 'create-affiliate-account');
        INSERT INTO oc_url_alias (query, keyword) VALUES ('affiliate/login', 'affiliate-login');

 

8. Удаляем файлы из system/cache все кроме index.html 

 

9. Радуемся приятному внешнему виду url

 

Еще раз спасибо "freelancer" за помощь!

  • +1 1
Надіслати
Поділитися на інших сайтах


  • 1 month later...

У меня $url .= 'index.php?route=' . $route; отличается наличием $code

и если вставить ваш код после этой строки (в строку 24), то "Fatal error: Call to undefined method Url::rewrite() in Z:\home\mydomain.ru\www\system\library\url.php on line 46"

 

Привожу содержимое файла до вмешательства:

<?php
class Url {
	private $url;
	private $ssl;
	private $rewrite = array();
	
	public function __construct($url, $ssl = '') {
		$this->url = $url;
		$this->ssl = $ssl;
	}
		
	public function addRewrite($rewrite) {
		$this->rewrite[] = $rewrite;
	}
		
	public function link($route, $args = '', $connection = 'NONSSL', $code = '') {
		if ($connection ==  'NONSSL') {
			$url = $this->url;	
		} else {
			$url = $this->ssl;	
		}
		
		$url .= $code . 'index.php?route=' . $route;
			
		if ($args) {
			$url .= str_replace('&', '&', '&' . ltrim($args, '&')); 
		}
		
		foreach ($this->rewrite as $rewrite) {
			$url = $rewrite->rewrite($url, $code);
		}
				
		return $url;
	}
}
?>

Буду благодарен, если ответите кодом целиком. Я обещаю разобраться и понять, как только поднаберусь опыта :)

У меня только этот вариант сработал)))

Надіслати
Поділитися на інших сайтах


Ребят может ли такое быть, что данный способ не работает на ocStore 1.5.5.1.1 ? нестандартная тема, есть vqmod файлы для темы.  Ранее данный вопрос решался элементарно и не доставлял никаких проблем.

 

Надіслати
Поділитися на інших сайтах


seo_pro который в дистрибутиве, включен и все ссылки работают как надо, только это редирект постоянно выбрасывает на index.php?route=common/home.

 

Магазин сам не чистый, а рабочий, обновлял с 1,5.4.1

 

Непонятно, где еще может пересекаться данный параметр, буду искать.

Надіслати
Поділитися на інших сайтах


  • 5 months later...

Аналогичная проблема. НО! На одном сайте работает, на другом нет - абсолютно одинаковые оксторы, хтаксесс, но разные хостинги.. Где-то в модуле пхп проблему искать?

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

\system\library\response.php

в функцию public function output() { с самого начала дописываем:

if (!defined('HTTP_CATALOG')) $this->output = str_replace('index.php?route=common/home', '', $this->output);
p.s. Это решение было предоставленно Yesvik. Чего Вы не любите пользоватся поиском...

 

А мне что-то не помогло. Помогало на версии 1,5,3,1 - а на 1.5.4.1.2 - не вышли такие же действия. так и отображается http://txb.kz/index.php?route=common/home

Надіслати
Поділитися на інших сайтах


А мне что-то не помогло. Помогало на версии 1,5,3,1 - а на 1.5.4.1.2 - не вышли такие же действия. так и отображается http://txb.kz/index.php?route=common/home

Seo Pro включён?

 

Зайдите в базу данных(php my admin )

 

сделайте запрос 

INSERT INTO oc_url_alias(query, keyword) VALUES ('common/home', '');

"oc_" замените на ваш префикс,если не используете,то уберите.

 

Почистите папку system/cache .Должно помочь.

  • +1 1
Надіслати
Поділитися на інших сайтах

  • 1 month later...

Мне помогло немного другое... в этом же "url.php" (system/library/url.php):
после строчки:
if ($args) { $url .= str_replace('&', '&', '&' . ltrim($args, '&')); }

вставляем:
else { if($route == 'common/home') { if($connection == 'NONSSL') { return HTTP_SERVER; } else { return HTTPS_SERVER; } } }

  • +1 1
Надіслати
Поділитися на інших сайтах


  • 1 month later...

Почему так мучтися то в файле template/common/header.tpl

 

<?php if ($logo) { ?>

<div id="logo"><a href="<?php echo $home; ?>"><img src="<?php echo $logo; ?>" title="<?php echo $name; ?>" alt="<?php echo $name; ?>" /></a></div>

<?php } ?>


на 

<?php if ($logo) { ?>

<div id="logo"><a href="http://<?php echo $_SERVER['HTTP_HOST']; ?"><img src="<?php echo $logo; ?>" title="<?php echo $name; ?>" alt="<?php echo $name; ?>" /></a></div>

<?php } ?>

 

И все вопрос решен

 

:-)

Надіслати
Поділитися на інших сайтах


  • 1 month later...

markimax сказал(а) 19 Ауг 2013 - 11:32 PM:

Правильное решение

/system/library/url.php

Находим $url .= 'index.php?route=' . $route;

и после него вот этот код вставляем:

if ($args) {
        if($route == 'common/home') {
		  if($connection == 'NONSSL') {
		   $url = HTTP_SERVER.str_replace('&', '&amp;', '?' . ltrim($args, '&'));
		  return $url;
		  } else {
		   $url = HTTPS_SERVER.str_replace('&', '&amp;', '?' . ltrim($args, '&'));
		  return $url;
   		 }

        } else {
            $url .= str_replace('&', '&amp;', '&' . ltrim($args, '&'));

        }
        } else {
   	  if($route == 'common/home') {
   		 if($connection == 'NONSSL') { return HTTP_SERVER; }
   		 else { return HTTPS_SERVER; }
   	   }
   	 }


        return $this->rewrite($url);
Здравствуйте. Подскажите как избавится от проблемы заключенной в ссылках такого вида [/size]http://localhost/http://localhost/ естественно ошибка 404, ссылка такой становится во втором магазине на опенкарт для главной, продолжить и логотип.[/size]

мой system/library/url.php[/size]

<?php

class Url {

    private $url;
    private $ssl;
    private $hook = array();

    public function __construct($url, $ssl) {
        $this->url = $url;
        $this->ssl = $ssl;
    }

    public function link($route, $args = '', $connection = 'NONSSL') {

        // SIMPLE START
        $get_route = isset($_GET['route']) ? $_GET['route'] : (isset($_GET['_route_']) ? $_GET['_route_'] : '');

        /* if ($route == 'checkout/cart' && $get_route != 'checkout/cart') {
          $connection = 'SSL';
          $route = 'checkout/simplecheckout';
          } */

        if ($route == 'checkout/checkout' && $get_route != 'checkout/checkout') {
            $route = 'checkout/simplecheckout';
        }

        if ($route == 'account/register' && $get_route != 'account/register') {
            $route = 'account/simpleregister';
        }

        if ($route == 'account/edit' && $get_route != 'account/edit') {
            $route = 'account/simpleedit';
        }

        if ($route == 'account/address/update' && $get_route != 'account/address/update') {
            $route = 'account/simpleaddress/update';
        }

        if ($route == 'account/address/insert' && $get_route != 'account/address/insert') {
            $route = 'account/simpleaddress/insert';
        }
        // SIMPLE END

        if ($connection == 'NONSSL') {
            $url = $this->url;
        } else {
            $url = $this->ssl;
        }

        $url .= 'index.php?route=' . $route;

        if ($args) {
            if ($route == 'common/home') {
                if ($connection == 'NONSSL') {
                    $url = HTTP_SERVER . str_replace('&', '&amp;', '?' . ltrim($args, '&'));
                    return $url;
                } else {
                    $url = HTTPS_SERVER . str_replace('&', '&amp;', '?' . ltrim($args, '&'));
                    return $url;
                }
            } else {
                $url .= str_replace('&', '&amp;', '&' . ltrim($args, '&'));
            }
        } else {
            if ($route == 'common/home') {
                if ($connection == 'NONSSL') {
                    return HTTP_SERVER;
                } else {
                    return HTTPS_SERVER;
                }
            }
        }

        return $this->rewrite($url);

        if ($args) {
            $url .= str_replace('&', '&amp;', '&' . ltrim($args, '&'));
        }

        return $this->rewrite($url);

        foreach ($this->rewrite as $rewrite) {
            $url = $rewrite->rewrite($url);
        }

        return $url;
    }

    public function addRewrite($hook) {
        $this->hook[] = $hook;
    }

    public function rewrite($url) {
        foreach ($this->hook as $hook) {
            $url = $hook->rewrite($url);
        }

        return $url;
    }

}

?>
Надіслати
Поділитися на інших сайтах

  • 2 months later...

\system\library\response.php

в функцию public function output() { с самого начала дописываем:

if (!defined('HTTP_CATALOG')) $this->output = str_replace('index.php?route=common/home', '', $this->output);
p.s. Это решение было предоставленно Yesvik. Чего Вы не любите пользоватся поиском...

 

Решение работает! Говорят неправильное. Кто-то может понятным языкокм объяснить к каким негативным последствиям может привести. Спасибо.

Надіслати
Поділитися на інших сайтах


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

Так что пришлось использовать ЧПУ по умолчанию и данное решение.

Ладно, косяки если есть, сами вылезут.

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...
  • 4 weeks later...

Тоже присоединяюсь!

 

Решили так:

 

RewriteCond %{HTTP_HOST} ^www.domain.ru/$ [NC]
RewriteRule ^(.*)$ http://domain.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/ 
RewriteRule ^index\.html$ / [R=301,L] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ 
RewriteRule ^index\.php$ / [R=301,L]
RewriteCond %{QUERY_STRING} ^route=common/home$
RewriteCond %{REQUEST_METHOD} !^POST$
RewriteRule ^index\.php$ http://%{HTTP_HOST}? [R=301,L]
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.