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

dii

Новачок
  
  • Публікації

    1
  • З нами

  • Відвідування

Усі публікації користувача dii

  1. Имеется: - пробная установка ocStore v1.0.1 релиз в раздел сайта (по урлу вида http://thesite.dom/teststore/) - включены ЧПУ типа SeoPro - заданы алиасы категориям и товарам - .htaccess содержит обычное ... RewriteEngine On RewriteBase /teststore/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] ... При попытке перейти по ЧПУ-ссылке категории вида http://thesite.dom/teststore/testcategory/ получаем диагностику redirect loop в браузере, а апачев accesslog пишет что-то вроде: "GET /teststore/testcategory/ HTTP/1.1" 301 - "GET /teststore/testcategory/ HTTP/1.1" 301 - "GET /teststore/testcategory/ HTTP/1.1" 301 - "GET /teststore/testcategory/ HTTP/1.1" 301 - "GET /teststore/testcategory/ HTTP/1.1" 301 - ... и так много раз подряд.В файле catalog/controller/common/seo_pro.php за это ответственен такой участок кода: class ControllerCommonSeoPro extends Controller { ... skipped ... private function validate($link) { ... skipped ... $seo_url = $this->url->link($this->request->get['route'], $args, $scheme); $seo_url = str_replace('&', '&', $seo_url); if ($link != rawurldecode(ltrim(parse_url($seo_url, PHP_URL_PATH), '/'))) { // <== вот тут не сработало условие $get[] = 'route'; $data = array_diff_key($this->request->get, array_flip($get)); if (count($data)) { $seo_url .= (strpos($seo_url, '?') === false) ? '?' : '&'; $seo_url .= urldecode(http_build_query($data)); } header($this->request->server['SERVER_PROTOCOL'] . ' 301 Moved Permanently'); $this->response->redirect($seo_url); } } } У себя исправил так: class ControllerCommonSeoPro extends Controller { ... skipped ... private function validate($link) { ... skipped ... $seo_url = $this->url->link($this->request->get['route'], $args, $scheme); $seo_url = str_replace('&', '&', $seo_url); $linkpfx = ltrim(parse_url($this->config->get('config_url'), PHP_URL_PATH), '/'); if ($linkpfx.$link != rawurldecode(ltrim(parse_url($seo_url, PHP_URL_PATH), '/'))) { //if ($link != rawurldecode(ltrim(parse_url($seo_url, PHP_URL_PATH), '/'))) { $get[] = 'route'; $data = array_diff_key($this->request->get, array_flip($get)); if (count($data)) { $seo_url .= (strpos($seo_url, '?') === false) ? '?' : '&'; $seo_url .= urldecode(http_build_query($data)); } header($this->request->server['SERVER_PROTOCOL'] . ' 301 Moved Permanently'); $this->response->redirect($seo_url); } } }

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

Important Information

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