Спасибо за ответ, но почему спрашиваю? А потому, что после установки модуля ссылки не генерировались до отключения сжатия, но носле отключения ссылки сгенерировались, но пишет 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. При включении сжатия страницу находит, но адрес меняется на дефолтовый. Что не так?Работает. А в инструкции про отключение я в шутку написал. Сами-то как думаете?Скажите, пожалуйста, без отключения сжатия этот модуль не работает?
PS. Включение этой опции особо смысла не имеет.
1. В буфере при включенном сжатии лежит сжатый контент. Естественно, что либо подменить в нем затруднительно. Можно его распаковать, подменить, затем снова запаковать, но какой смысл тратить ресурс на перепаковку?
2. апач и сам умеет жать отдаваемый контент "на лету". Причем весь, а не только HTML.
3. Скорость передачи давно уже не такая низкая, чтобы сжатие на что-либо влияло. Да и бОльшая часть отдаваемого объема (картинки, авишки) практически не жмется.
Простенький модуль ЧПУ, версия 2
#21
Отправлено 25 April 2014 - 11:58 AM
#22
Отправлено 25 April 2014 - 02:40 PM
Генерация ссылок никаким боком к сжатию. Сжатие никак не влияет на генерацию ссылок.после установки модуля ссылки не генерировались до отключения сжатия
Я - не знаю. Но вдруг найдутся телепаты?Что не так?
#23
Отправлено 26 April 2014 - 08:12 PM
Я не шучу про генерацию ссылок. Установил модуль. Ссылки при нажатии соответствующих кнопок генерируются, т.е. процесс вроде как идёт, но ссылки при проверке, т.е. при переходах по сайту не видны (как бы не созданы). После отключения опции сжатия в общих настройках ссылки отражаются в строке браузера, но при переходе по ним выдает ошибку 404. Какие есть предположения? СпасибоГенерация ссылок никаким боком к сжатию. Сжатие никак не влияет на генерацию ссылок.после установки модуля ссылки не генерировались до отключения сжатия
Я - не знаю. Но вдруг найдутся телепаты?Что не так?
#24
Отправлено 26 April 2014 - 08:27 PM
Я верю, что Вы не шутите. Но, повторюсь, телепаты в отпуске. Надо заходить на Ваш сайт (изнутри) и смотреть, что и как установлено, что видно в логах, что видно в "статистике ошибок". А не гадать на кофейной гуще. Скорее всего, причина проста, но этих "простых причин" десятки, как и с предыдущей версией ЧПУ.Я не шучу про генерацию ссылок
Я в таких случаях всегда напоминаю про три возможных варианта:
1. Разобраться самому.
2. Обратиться к тому, кто разберется за Вас (обычно это платно).
3. Обратиться к богу. История человечества показала, что иногда помогает.
При включеном сжатии ЧПУ-ссылок не будет, т.к. подмена происходит в буфере, буфер зазипован, подменять нечего. Контент уходит клиенту без замены обычных ссылок на ЧПУ-ншные.но ссылки при проверке, т.е. при переходах по сайту не видны (как бы не созданы). После отключения опции сжатия в общих настройках ссылки отражаются в строке браузера
При выключенном сжатии ссылки подменяются на ЧПУ-шные, так и должно быть.
Почему не происходит обратной подмены при нажатии на ссылку - см. выше.
#25
Отправлено 26 April 2014 - 09:05 PM
Спасибо, попробую сам разобраться или другой вариант чпу поставитьЯ верю, что Вы не шутите. Но, повторюсь, телепаты в отпуске. Надо заходить на Ваш сайт (изнутри) и смотреть, что и как установлено, что видно в логах, что видно в "статистике ошибок". А не гадать на кофейной гуще. Скорее всего, причина проста, но этих "простых причин" десятки, как и с предыдущей версией ЧПУ.Я не шучу про генерацию ссылок
Я в таких случаях всегда напоминаю про три возможных варианта:
1. Разобраться самому.
2. Обратиться к тому, кто разберется за Вас (обычно это платно).
3. Обратиться к богу. История человечества показала, что иногда помогает.При включеном сжатии ЧПУ-ссылок не будет, т.к. подмена происходит в буфере, буфер зазипован, подменять нечего. Контент уходит клиенту без замены обычных ссылок на ЧПУ-ншные.но ссылки при проверке, т.е. при переходах по сайту не видны (как бы не созданы). После отключения опции сжатия в общих настройках ссылки отражаются в строке браузера
При выключенном сжатии ссылки подменяются на ЧПУ-шные, так и должно быть.
Почему не происходит обратной подмены при нажатии на ссылку - см. выше.
#26
Отправлено 29 April 2014 - 03:13 PM
1.1. убрать из cpu.php (или index.php, если он уже переименован) строку
require_once "core/includes/database/".DBMS.".php";
и контекстной заменой заменить все db_ на mysql_ ОБЯЗАТЕЛЬНО с соблюдением регистра, т.к. DB_PRFX заменять не надо.
после этой правки белый лист исчез,
таблицы в базе созданы нормально,
добавляются редиректы,
добавляются ручные ссылки только когда их вручную в поле записываешь и сохраняешь, а при нажатии кнопки транслит выскакивает сообщение с ????????????????????????????? как понял это неверная кодировка а ссылка в поле становится --------------------------33-------------------------.html,
но в админке так по нажатию кнопок ничего не происходит, где копать?
Все разобрался в админке как понял не подгружается jQery, поэтому прописал подгружение в файл модуля modules_friendly_cpu.tpl.html и аякс ссылки стали работать
#27
Отправлено 06 May 2014 - 09:04 PM
Т.е. то, что там И ТАК УЖЕ ЕСТЬ строкаВсе разобрался в админке как понял не подгружается jQery, поэтому прописал подгружение в файл модуля modules_friendly_cpu.tpl.html и аякс ссылки стали работать
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>ни на какие мысли не наводит? )))
PS. update:
17. в файле data/[шаблон]/user.js все index.php заменяем на /index.php
#28
Отправлено 07 May 2014 - 11:59 AM
Так я на локалке тестировал, у меня jqery не из сети а напрямую!ни на какие мысли не наводит? )))
#29
Отправлено 15 May 2014 - 02:51 PM
в product_function.php найти
function AddProduct(
в ней перед
return $insert_id;
}
вставить
# BEGIN SimpleFriendlyURL
if(strlen(trim($_POST["cpu"])))
{
$cpu = $_POST["cpu"].(preg_match('/\.html$/',$_POST["cpu"])?'':'.html');
$cpu = preg_replace('/^([^\/])/','/$1',$cpu);
$count = db_fetch_row(db_query("SELECT COUNT(*) FROM ".DB_PRFX."cpu WHERE type=1 AND ID=".$insert_id));
if ($count[0]) db_query("UPDATE ".DB_PRFX."cpu SET cpu='$cpu' WHERE type=1 AND ID=".$insert_id);
else db_query("INSERT ".DB_PRFX."cpu SET cpu='$cpu', type=1, ID=".$insert_id);
}
else db_query("DELETE FROM ".DB_PRFX."cpu WHERE type=1 AND ID=".$insert_id);
# END SimpleFriendlyURL
#30
Отправлено 15 May 2014 - 04:12 PM
$insert_id это автоинкрементное поле productID и для новосозданного товара заведомо бессмысленна как проверка на существование такой записи в xxxx_cpu, так и ее удаление. Т.е. код можно смело сократить до:вставить
# BEGIN SimpleFriendlyURL
if(strlen(trim($_POST["cpu"])))
{
$cpu = $_POST["cpu"].(preg_match('/\.html$/',$_POST["cpu"])?'':'.html');
$cpu = preg_replace('/^([^\/])/','/$1',$cpu);
db_query("INSERT ".DB_PRFX."cpu SET cpu='$cpu', type=1, ID=$insert_id");
}
# END SimpleFriendlyURL
#31
Отправлено 21 May 2014 - 08:11 AM
Если включить хлебные крошки для продукта, то при генерации страниц все нормально отображается.
Например продукт.
имеет ссылку
/cat1/cat2/product1.html
но он получается
доступен и по адресу:
/cat1/cat2/product1.html
/cat2/product1.html
/product1.html
Но это не очень хорошо - дублирование контента. Получается, что при генерации страниц факт крошек отрабатывается, а при обращении
к страницам, что-то не срабатывает. Сталкивались с таким? Так должно быть? Может, что при настройке не так сделано с моей стороны?
#32
Отправлено 21 May 2014 - 08:15 AM
Так и должно быть. Точнее, не должно, но так есть .Так должно быть? Может, что при настройке не так сделано с моей стороны?
Подумаю, как исправить. Это недоработка.
Адрес продукта составной, т.е. состоит из заданного для категории и для продукта.Адрес для продуктов жестко прописывается или при смене категории меняется?
#33
Отправлено 21 May 2014 - 09:07 AM
Адрес для продуктов жестко прописывается или при смене категории меняется?
Адрес продукта составной, т.е. состоит из заданного для категории и для продукта.
Вот я уверен, что адрес страниц должен быть незыблемым, независимо от смены категории. Мое мнение, что адрес страницы не должен содержать хлебных крошек или самые основные, но жестко прописанные, так как продукт может содержаться в многих категориях, иметь бренд, различные теги, идеальный url с крошками сделать сложно при большом количестве категорий. А что, если вдруг нужно сменить основную категорию, а товаров тысячи, то сразу вырисовывается проблема для сайта.
Многие специалисты по SEO рекомендуют крошки в url. Но я не согласен, много примеров: сайты в топе 10, у которых адреса жестко прописаны без категорий.
#34
Отправлено 21 May 2014 - 10:42 AM
Это легко сделать - не включать галку "хлебные крошки в товарах" .Мое мнение, что адрес страницы не должен содержать хлебных крошек
В скольки бы дополнительных (!) категориях товар не содержался, а основная категория у него одна. От нее ЧПУ и пляшет. Вне зависимости от текущей категории.продукт может содержаться в многих категориях
#35
Отправлено 21 May 2014 - 11:27 AM
Да я знаю, что отключается, но многие просят хлебные крошки настроить в продукте. А категория да основная одна, но если её не менять то все хорошо.Это легко сделать - не включать галку "хлебные крошки в товарах" .Мое мнение, что адрес страницы не должен содержать хлебных крошек
В скольки бы дополнительных (!) категориях товар не содержался, а основная категория у него одна. От нее ЧПУ и пляшет. Вне зависимости от текущей категории.продукт может содержаться в многих категориях
#36
Отправлено 21 May 2014 - 11:49 AM
Тут надо определиться - либо "хлебные крошки", либо "можно менять категорию, а ссылка на товар останется той же". Одновременно это невозможно. На текущий момент если есть товар /cat1/cat2/prod1.html, то последующее изменение ссылки на категорию (скажем, на /cat4/cat5/, ну вот захотелось так) приведет и к изменению ссылки на товар, она станет /cat4/cat5/prod1.html. Таки образом "хлебные крошки" сохранятся. Если же ссылку на товар задавать целиком в описании товара, а не составлять из категория+товар, то при смене ссылки на категорию "хлебные крошки" пойдут лесом.А категория да основная одна, но если её не менять то все хорошо.
#37
Отправлено 21 May 2014 - 11:57 AM
1: кто не хочет, чтобы при переключении категорий менялась ссылка на продукт, тот использует вариант продукта без хлебных крошек.
этот вариант, сейчас работает и все хорошо.
2: кто не собирается менять категорию и выбирает хлебные крошки в продукте, то сейчас имеется дублирование контента, о чем я и писал. если его убрать, то все будет нормально.
Т.е практически, если убрать дублирование контента при 2-м варианте продукта с хлебными крошками, то модуль будет в прекрасном исполнении и ничего больше делать не стоит. Я так считаю. Каждый выбирает свой вариант настройки и с ним работает.
#38
Отправлено 30 May 2014 - 01:35 PM
Update:Т.е практически, если убрать дублирование контента при 2-м варианте продукта с хлебными крошками, то модуль будет в прекрасном исполнении и ничего больше делать не стоит.
1. Исправлены дублирования. Теперь проверяется, правильно ли указаны категории в "хлебных крошках". Собственно, та же проблема была с новостями и страницами - можно было указывать любой набор /aaa/bbb/ccc/ перед ddd.html
2. Исправлено еще несколько по ходу найденных ошибок.
3. Исправлен sitemap.php, в предыдущем к товарам всегда дописывались категории вне зависимости от настроек.
4. Куски повторяющегося кода вынесены в cpu_functions.php в виде функций.
5. Добавлено соответствующее удаление записей в ЧПУ-таблице при удалении категории, товара, новости, страницы.
6. Добавлен UNIQUE KEY в ЧПУ-таблицу, что позволило заменить логику "if SELECT COUNT(*) then INSERT else UPDATE" на "REPLACE".
Важно! Кто уже ставил этот модуль надо удалить и заново создать таблицу. Либо добавить этот UNIQUE KEY вручную.
Не сделано: Пока не должно быть одноименных товаров, страниц, новостей. Т.е. товар gaika.html и новость gaika.html будут конфликтовать. Аналогично будут конфликтовать и два товара с одной ссылкой. Невзирая на то, что они лежат в разных категориях и с учетом каталога ссылки будут разными - /cat1/gaika.html, /cat2/gaika.html (и /news/gaika.html у новости). Происходит так потому, что в ЧПУ-таблице лежит не "полная" ссылка, а только "хвост" gaika.html. Писать "полную" ссылку каждому товару не хочется по многим причинам. Придумаю, как выкрутиться малым ресурсом - исправлю.
Также наверняка добавлены новые ошибки и не все найдены старые .
В шапке последняя версия.
#39
Отправлено 30 May 2014 - 04:07 PM
Сразу совершенно написать невозможно. Как говорят: правильное понимание, как необходимо было написать программу приходит, тогда, когда она уже закончена.
Я тоже тогда еще сделал устранение дубляжа и карты сайта. Константу на крошки я намертво зашил в index.php, чтобы не делать лишний запрос. Ведь на сайте, если выставил, так играться на рабочем сайте (вкл/выкл) никто не будет по понятным причинам. Посмотрел сейчас свой код, почти также т.е. результат и подход, но есть некоторые отличия, которые не несут функциональной разницы. Про уникальность я тоже видел, что надо было сделать. (По специфике сайта куда ставилось ЧПУ просто невозможно было иметь одинаковые названия даже при автоматическом групповом траслите). Но думаю, что все равно сделать уникальным полем cpu на всякий случай.
Не сделано: Пока не должно быть одноименных товаров, страниц, новостей. Т.е. товар gaika.html и новость gaika.html будут конфликтовать. Аналогично будут конфликтовать и два товара с одной ссылкой. Невзирая на то, что они лежат в разных категориях и с учетом каталога ссылки будут разными - /cat1/gaika.html, /cat2/gaika.html (и /news/gaika.html у новости). Происходит так потому, что в ЧПУ-таблице лежит не "полная" ссылка, а только "хвост" gaika.html. Писать "полную" ссылку каждому товару не хочется по многим причинам. Придумаю, как выкрутиться малым ресурсом - исправлю.
Мне кажется, что тут не стоит сильно заморачиваться, если сделано уникальным поле самой ссылки cpu без крошек. то эти вопросы отпадают. Одинаковых ссылок нет и нечем тут конфликтовать.
И еще наверное на форуме нужно сделать соглашение о нумерации версий, например ver2 начальная, а к остальным добавлять через точку цифру например эта новая версия ver2.1 и т.д. что бы не запутаться. И по номеру будет видно, что версия уже обновлена. Соглашения - это нормально.
#40
Отправлено 05 June 2014 - 04:30 PM
Я тормоз. У меня ж там как раз на этот случай есть галка "Добавлять уникальный ID к ЧПУ-ссылкам товаров", специально на такой случай и сделан. Хоть все товары одноименными делать можно.Не сделано: Пока не должно быть одноименных товаров, страниц, новостей. Т.е. товар gaika.html и новость gaika.html будут конфликтовать. Аналогично будут конфликтовать и два товара с одной ссылкой.
Update:
Исправлено:
1. не добавлялся ЧПУ категории к ЧПУ товара при редиректе-301 со старой ссылки вида /product_123.html.
2. не добавлялось /news/ при редиректе-301 со старой ссылки вида /show_news_123.html
Соответственно, редиректы шли на не существующую ссылку.
Добавлено:
1. Галки добавления уникальных ID к статическим страницам и новостям.
2. Галка автогенерации ЧПУ-ссылок для объектов, не имеющих ЧПУ-ссылки. Если включена, то при загрузке страницы все попавшие на нее ссылки будут автоматически "оЧПУшены".
3. В редиректах появилась возмоэность задать нечто типа макроса подмены. Т.е. если задать редирект, начинающийся с символа & (например, &abc -> cde), то работать он будет следующим образом: все вхождения строки abc в ссылке будут заменены на cde и произведен редирект-301 на полученную ссылку.
!!! до редиректов дело доходит только если такой ссылки нет в таблице ЧПУ-ссылок, т.е. ссылка не существующая!
В шапке исправленная версия.