Jump to content

Recommended Posts

Добрый вечер уважаемые форумчане. Столкнулся первый раз с такой проблемой: при включении чпу, страницы не открываются и имеют вид http://kubtorg.ru/index.php/kofejnye-avtomaty  htaccess переименован и стоит в корне опенкарта. Не пойму в чем может быть дело? версия 2.2.0.0

Edited by Alexidi76

Share this post


Link to post
Share on other sites

Какой SEO SUPER PUPER MEGA SHIT ULTIMATE модуль стоит у вас еще ?

Share this post


Link to post
Share on other sites

Какой SEO SUPER PUPER MEGA SHIT ULTIMATE модуль стоит у вас еще ?

Не знаю о чем вы говорите. В модулях нет никаких подобных модулей.

Share this post


Link to post
Share on other sites

Не пойму откуда подставляется в урл index.php/ Можете подсказать плиз?

Share this post


Link to post
Share on other sites
страницы не открываются и имеют вид http://kubtorg.ru/in...fejnye-avtomaty  htaccess переименован

Если выкинуть из ссылки index.php, то всё прекрасно открывается, так что .htaccess тут не при чём - проблема только в генерации ЧПУ.

Что у вас в /catalog/controller/startup/seo_url.php и /system/storage/modification/catalog/controller/startup/seo_url.php?

Share this post


Link to post
Share on other sites

Не знаю о чем вы говорите. В модулях нет никаких подобных модулей.

Вы уверены ?

У вас ЧПУ формирователь seo_url rewrite() генерирует не правильные ЧПУ - значит "что-то" есть 

Share this post


Link to post
Share on other sites

Если выкинуть из ссылки index.php, то всё прекрасно открывается, так что .htaccess тут не при чём - проблема только в генерации ЧПУ.

Что у вас в /catalog/controller/startup/seo_url.php и /system/storage/modification/catalog/controller/startup/seo_url.php?

 

/catalog/controller/startup/seo_url.php

<?php
class ControllerStartupSeoUrl extends Controller {
	public function index() {
		// Add rewrite to url class
		if ($this->config->get('config_seo_url')) {
			$this->url->addRewrite($this);
		}

		// Decode URL
		if (isset($this->request->get['_route_'])) {
			$parts = explode('/', $this->request->get['_route_']);

			// remove any empty arrays from trailing
			if (utf8_strlen(end($parts)) == 0) {
				array_pop($parts);
			}

			foreach ($parts as $part) {
				$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'");

				if ($query->num_rows) {
					$url = explode('=', $query->row['query']);

					if ($url[0] == 'product_id') {
						$this->request->get['product_id'] = $url[1];
					}

					if ($url[0] == 'category_id') {
						if (!isset($this->request->get['path'])) {
							$this->request->get['path'] = $url[1];
						} else {
							$this->request->get['path'] .= '_' . $url[1];
						}
					}

					if ($url[0] == 'manufacturer_id') {
						$this->request->get['manufacturer_id'] = $url[1];
					}

					if ($url[0] == 'information_id') {
						$this->request->get['information_id'] = $url[1];
					}

					if ($query->row['query'] && $url[0] != 'information_id' && $url[0] != 'manufacturer_id' && $url[0] != 'category_id' && $url[0] != 'product_id') {
						$this->request->get['route'] = $query->row['query'];
					}
				} else {
					$this->request->get['route'] = 'error/not_found';

					break;
				}
			}

			if (!isset($this->request->get['route'])) {
				if (isset($this->request->get['product_id'])) {
					$this->request->get['route'] = 'product/product';
				} elseif (isset($this->request->get['path'])) {
					$this->request->get['route'] = 'product/category';
				} elseif (isset($this->request->get['manufacturer_id'])) {
					$this->request->get['route'] = 'product/manufacturer/info';
				} elseif (isset($this->request->get['information_id'])) {
					$this->request->get['route'] = 'information/information';
				}
			}

			if (isset($this->request->get['route'])) {
				return new Action($this->request->get['route']);
			}
		}
	}

	public function rewrite($link) {
		$url_info = parse_url(str_replace('&', '&', $link));

		$url = '';

		$data = array();

		parse_str($url_info['query'], $data);

		foreach ($data as $key => $value) {
			if (isset($data['route'])) {
				if (($data['route'] == 'product/product' && $key == 'product_id') || (($data['route'] == 'product/manufacturer/info' || $data['route'] == 'product/product') && $key == 'manufacturer_id') || ($data['route'] == 'information/information' && $key == 'information_id')) {
					$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = '" . $this->db->escape($key . '=' . (int)$value) . "'");

					if ($query->num_rows && $query->row['keyword']) {
						$url .= '/' . $query->row['keyword'];

						unset($data[$key]);
					}
				} elseif ($key == 'path') {
					$categories = explode('_', $value);

					foreach ($categories as $category) {
						$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'category_id=" . (int)$category . "'");

						if ($query->num_rows && $query->row['keyword']) {
							$url .= '/' . $query->row['keyword'];
						} else {
							$url = '';

							break;
						}
					}

					unset($data[$key]);
				}
			}
		}

		if ($url) {
			unset($data['route']);

			$query = '';

			if ($data) {
				foreach ($data as $key => $value) {
					$query .= '&' . rawurlencode((string)$key) . '=' . rawurlencode((is_array($value) ? http_build_query($value) : (string)$value));
				}

				if ($query) {
					$query = '?' . str_replace('&', '&', trim($query, '&'));
				}
			}

			return 'http://kubtorg.ru/' . (isset($url_info['port']) ? ':' . $url_info['port'] : '') . str_replace('/index.php', '', $url_info['path']) . $url . $query;
		} else {
			return $link;
		}
	}
}

/system/storage/modification/catalog/controller/startup/seo_url.php  -  нет такой директории.

Share this post


Link to post
Share on other sites

Вы уверены ?

У вас ЧПУ формирователь seo_url rewrite() генерирует не правильные ЧПУ - значит "что-то" есть 

В модулях нет ничего подобного чтобы напоминало о сео. есть автоматический транслит, файл js  в админке просто подставляет латыницу в сеоурл.

Share this post


Link to post
Share on other sites

А что это WTF ?

return 'http://kubtorg.ru/' . (isset($url_info['port']) ? ':' . $url_info['port'] : '') . str_replace('/index.php', '', $url_info['path']) . $url . $query;

Возьмите оригинальный seo_url.php

Share this post


Link to post
Share on other sites

А что это WTF ?

return 'http://kubtorg.ru/' . (isset($url_info['port']) ? ':' . $url_info['port'] : '') . str_replace('/index.php', '', $url_info['path']) . $url . $query;

Возьмите оригинальный seo_url.php

это из какой директории?

Share this post


Link to post
Share on other sites

это из какой директории?

Ну вы что не видите - это из вашего seo_url.php который вы здесь предоставили

Кто вам такую "засаду" сделал?

Ставьте оригинальный seo_url.php

Share this post


Link to post
Share on other sites

А что это WTF ?

return 'http://kubtorg.ru/' . (isset($url_info['port']) ? ':' . $url_info['port'] : '') . str_replace('/index.php', '', $url_info['path']) . $url . $query;

Возьмите оригинальный seo_url.php

 

Не вариант, вылезло куча ошибок.

Share this post


Link to post
Share on other sites

Не вариант, вылезло куча ошибок.

Ну тогда мы вам помочь не сможем

Вам кто то топором допиливал seo_url.php неизвестно под что

Так не делают

Share this post


Link to post
Share on other sites

Может залить поверх существующего сайта оригинальные файлы движка?

Share this post


Link to post
Share on other sites

Ну тогда мы вам помочь не сможем

Вам кто то топором допиливал seo_url.php неизвестно под что

Так не делают

Да я сам в шоке от такой криворукости. Первый раз с таким сталкиваюсь. Я не знаю кто это делал. Взялся помочь, а тут такая засада.

Share this post


Link to post
Share on other sites

Может залить поверх существующего сайта оригинальные файлы движка?

Просто мы не знаем что вам там "пилили" ручной пилой "дружба"

Можете залить поверх и ваш магазин уйдет в даун

Но так как вам пилили seo_url.php .. за такое сразу в табло бьют

Share this post


Link to post
Share on other sites

Ладно, попробую залить предварительно сделав бэкап. отпишусь за результат. Не найти уж кому табло набить...

Share this post


Link to post
Share on other sites

Ладно, попробую залить предварительно сделав бэкап. отпишусь за результат. Не найти уж кому табло набить...

Для начала можно ещё попробовать заглянуть в /system/library/url.php. Уверен, там тоже поковырялись и есть вероятность, что причина проблемы там.

Share this post


Link to post
Share on other sites

Для начала можно ещё попробовать заглянуть в /system/library/url.php. Уверен, там тоже поковырялись и есть вероятность, что причина проблемы там.

Это не "поковырялись", это уже "надругались" скорее

Я не понимаю как так можно по тупому вставлять такие костыли.

Да скорее всего и в url.php тоже надругались над кодом... и даже не хочу думать где еще. :ugeek:

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.