Перейти к содержанию
Форум поддержки пользователей VamShop

Почему могут не работать ЧПУ


Рекомендуемые сообщения

Короткие адреса не работают: выбрасывает на главную страницу. При отключении - все ок.

Почему так?

На другом хостинге все ок. На этом - register_globals=Off

Ссылка на сообщение
Поделиться на другие сайты

Даже не знаю, в чём дело.

Ты сравни настройки php и там и там.

В Админке - Настройки - Инсрументы - Инфомарция о сервере.

Посмотри опции magic_quotes

Может они как-то влияют.

Ссылка на сообщение
Поделиться на другие сайты
  • 3 months later...

Привет, Саша!

У меня похожая ситуация, только не выбрасывает на главную, а пишет Не могу прочитать URL. Когда отключаю короткие адреса, все работает нормально, только в информационых страницах и статьях не работают ЧПУ, в каталоге-работают! А вообще можешь сказать что должно быть включено на сервере что-бы работали короткие адреса - напишу на хостинг - может включат! На этом хостинге register_globals=on

Ссылка на сообщение
Поделиться на другие сайты

Вообще разницы ведь нет, включа или нет опция короткие url.

Разница лишь в том, что сиволы ? и & заменяются на / в адресе.

Это нужно для того что б соответсвовать стандарту w3.org

А ты можешь создать файл server_info.php с таким содержимым:


<?php phpinfo(); ?>
[/code]

и открыть в браузере этот файл, предварительно закачав к себе на серер.

Затем сохрани страницу получившуюся и выложи здесь, что б я мог посмотреть, какие у тебя настройки php на сервере.

Ссылка на сообщение
Поделиться на другие сайты

Вроде нормально.

Ну ты тогда просто не включай короткие адреса.

Как я сказал, разница лишь в символах ? & которые меняются на /

А так, что включено что выключено одно и тоже.

Ссылка на сообщение
Поделиться на другие сайты

Спасибо Саша! Но все таки ты не в курсе почему могут не работать ЧПУ в информационных страницах и статьях?

Ссылка на сообщение
Поделиться на другие сайты

В них действительно подставляется название страницы или статьи только если включены короткие URL.

Сейчас ещё гляну на твой файл, тогда сравню со своим, может найду различия.

Мельком посмотрел, вроде всё нормально выглядит.

Ссылка на сообщение
Поделиться на другие сайты

А можно сделать что бы название статьи или страницы подставлялось и не зависело от того включены короткие URL или нет, или переписать условие, что-бы включалось, когда короткие URL выключены?

Ссылка на сообщение
Поделиться на другие сайты

В файлах:

/templates/шаблон/source/boxes/articles_new.php

/templates/шаблон/source/boxes/content.php

/templates/шаблон/source/boxes/information.php

замени:


if (SEARCH_ENGINE_FRIENDLY_URLS == 'true')

[/code] на:
[code]
if (SEARCH_ENGINE_FRIENDLY_URLS == 'false')

Ссылка на сообщение
Поделиться на другие сайты

И сново о ЧПУ!

Работники с хостинга протестировали при включенных коротких URL:

При включении  коротких URL в файл .htaccess прописывается определенный набор правил, которые говорят серверу куда обращаться при клике на определенную ссылку, у Вас этот файл пустой, так что проблема в самой CMS.

Я и удалил этот пустой файл в корне, но в итоге как было так и есть. Можно ли прописать это условие?

А вообще этот пустой файл нужен?

Ссылка на сообщение
Поделиться на другие сайты

В VaM Shop ЧПУ работают не через .htaccess

Так что вряд ли дело в нём.

Файл можешь удалять, ничего не будет страшного.

Ссылка на сообщение
Поделиться на другие сайты

Смотрел, у меня точно такие же настройки.

А ты попробуй в index.php добавить:


echo $PHP_SELF . 'test';
[/code] перед:
[code]
require (DIR_WS_INCLUDES.'header.php');

Затем зайди на главную страницу магазина, посмотри что у тебя сверху будет написано, просто test или /index.phptest

Ссылка на сообщение
Поделиться на другие сайты

А когда ты включаешь короткие url и открываешь index.php страницу в браузере, т.е. просто указываешь адрес своего магазина.

Тоже пишет не могу отобразить url?

Ссылка на сообщение
Поделиться на другие сайты

Тоже пишет:

Error!

Unable to determine the page link!

Перевел переводчиком:

 

Неспособный определять связь страницы!

Ссылка на сообщение
Поделиться на другие сайты

Попробуй в /includes/application_top.php, внизу, до ?> добавить:


if(!isset($PHP_SELF)) $PHP_SELF=$_SERVER["SCRIPT_NAME"];
[/code]

Ссылка на сообщение
Поделиться на другие сайты

Тогда я сдаюсь, не знаю, почему могут не работать.

Придётся тогда не включать короткие url.

Ссылка на сообщение
Поделиться на другие сайты

А что обозначает цыфра 304 в логах в тот момент, когда включаю короткие URL?

Попробую еще раз протестировать сайт с службой поддержки, когда на сайте будет меньше посетителей. Может с толку сбил пустой файл .htacces?

Ссылка на сообщение
Поделиться на другие сайты

Саша а ты можешь рассказать как у нас работают ЧПУ и каким макаром осуществляется подмена символов при включении коротких URL. Служба хостинга никак не может понять в чем дело, а может не хочет чего то включать на сервере. Мне прислали следующий ответ:

К сожалению, другой метод работы ЧПУ мне неизвестен. Через .htaccess с помощью mod_rewrite можно переназначить, чтобы все ссылки обрабатывались одним файлом, так обычно огранизуются ЧПУ. Если есть еще какой-то способ, буду признателен за его описание, может тогда смогу понять в чем тут может быть проблема.

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

Насколько я понимаю, подмена происходит вот в этом куске кода в файла /includes/application_top.php:


// set the HTTP GET parameters manually if search_engine_friendly_urls is enabled
if (SEARCH_ENGINE_FRIENDLY_URLS == 'true') {
if (strlen(getenv('PATH_INFO')) > 1) {
$GET_array = array ();
$PHP_SELF = str_replace(getenv('PATH_INFO'), '', $PHP_SELF);
$vars = explode('/', substr(getenv('PATH_INFO'), 1));
for ($i = 0, $n = sizeof($vars); $i < $n; $i ++) {
if (strpos($vars[$i], '[]')) {
$GET_array[substr($vars[$i], 0, -2)][] = $vars[$i +1];
} else {
$_GET[$vars[$i]] = htmlspecialchars($vars[$i +1]);
}
$i ++;
}

if (sizeof($GET_array) > 0) {
while (list ($key, $value) = each($GET_array)) {
$_GET[$key] = htmlspecialchars($value);
}
}
}
}
[/code]

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...