Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как вернуть добуквенный ЧПУ URL статьи?

Как вернуть добуквенный ЧПУ URL статьи?


     07.12.2019    ЧПУ URL    Общие вопросы, Общие вопросы по PHP    922

вопрос
Здравствуйте.

Раньше сидел на DLE 9.5, потом обновился до 12.1

На девятке так, что адрес новости был верен только в одном случае - если он совпадает до последнего символа с ЧПУ URL статьи - если, хоть один символ отличался - то выдавало ошибку "нет такой новости".

Ссылка имела такой вид /432811-scarlet-3-on-1-video-sz294-sd-480p.html (где первое число это ID новости, потом идёт ЧПУ)

Но на 12.1 я столкнулся с ситуацией, что DLE пофигу на ЧПУ URL статьи - достаточно ID новости и любого текста вместо ЧПУ. В ту же новость из примера можно попасть например по этой ссылке:/432811-sc.html

И это (игнорирование полного пути) очнеь не есть хорошо, т.к. раньше изменение ЧПУ URL статьи было прекрасным проитвоабузным инструментом, который теперь не работает.

Подскажите что где надобно поменять, чтобы вернуть "точный" ЧПУ (как в девятке), или хотя бы в какую сторону копать (какой файл за это отвечает)?

Заранее благодарю...

Ответил: Flash


В файле "\engine\modules\show.full.php" надо найти строку

$options = news_permission( $row['access'] );

и вставить выше код

	if ($row) {
		if( $config['allow_alt_url'] ) {
			if( $config['seo_type'] == 1 OR $config['seo_type'] == 2 ) {
				if( !empty($_GET['seourl']) AND $_GET['seourl'] != $row['alt_name'] ) {	
					$row = null;
				}
			}
		}
	}


Должно работать на версиях 10.x - 13.x

8 комментариев

ТeraМoune
Юзер

ТeraМoune - 7 декабря 2019 14:11 -

Есть хорошая настройка, Обрабатывать неверные URL ЧПУ

А без неё ЧПУ это чисто формальность. Без включённой настройки активны и успешно рабочие все ЧПУ варианты и даже вариант через get параметры в ссылке.

deadluk
Юзер

deadluk - 7 декабря 2019 17:29 -

фигня. раньше было лучше

ТeraМoune
Юзер

ТeraМoune - 7 декабря 2019 18:05 -

Что конкретно было раньше ?)

deadluk
Юзер

deadluk - 7 декабря 2019 18:22 -

ТС же написал) мы ж об этом говорим?

ТeraМoune
Юзер

ТeraМoune - 7 декабря 2019 18:56 -

Просто я вот сейчас поставил 9.5 и по словам ТС я должен иметь ошибки при попытке зайти в новость Добро пожаловать. При установке двига которая имеет следующие адреса

index.php?newsid=1
1-post1.html
main/2-post1.html
2019/12/07/post2.html

причём вот чистый голый двиг как есть, с включёнными типами чпу 1-3
без ошибок открывает новость по адресам


1-st1.html
хернякакая-то-замест-категории/2-post1.html
даже просто 1-.html будет равнозначно ?newsid=1

Единственный тип 3 который учитывает дату новости в ссылке тут поменять дату на произвольную нельзя.
но есть параметр seo_control это как раз Обрабатывать неверные URL ЧПУ
Происходит следующее когда мы открываем новость. при seo_control и переданном seourl (который как раз и есть alt_name) ^([0-9]+)-(.*).html(/?)+$ index.php?newsid=$1&seourl=$2 [L]
выполняется эта часть кода которая отвечает за проверку верное ли alt_name или произвольное. И делает редирект на верный адрес.


Но даже если включить сео контроль, и пройти по адресу index.php?newsid=1 то сео контроль не сработает.

Сижу значит я и не понимаю какие там выдавать ошибку "нет такой новости" должно. Никогда такого не было вроде, может версию еще меньше поискать ? Но не думаю, что там будет.

Сео контроль появился в dle 9.3, а значит до этой версии alt_name был чисто украшением. Использовался он лишь в 3 типе ЧПУ. Два другие типа совсем не учитывали что либо. Только ID новости.

Наверное у ТС хак какой был, о котором он забыл совсем. И так как в тех версиях правки были строго в исходниках то он запомнил функционал, а когда обновился и это всё пропало.

NONSENS
Юзер

NONSENS - 8 декабря 2019 00:43 -

Обрабатывать неверные URL ЧПУ - одинаковое поведение в обоих вариантах. Вариант ссылок первый у меня и тогда был, и сейчас.
ТeraМoune - Никаких хаков у меня в 9.5 не было, разьве что уже в нулленый DLE был запихан. Хакал только добавление "DLE тегов" к картинкам и ссылкам. Получая обузу, если новость была нужной, просто менял ЧПУ за 5 секунд и "абузная" ссылка становилась недоступна - фактически избавился от "абузной" новости с физическим её сохранением.

Я вот что подумал: может нужно .htaccess копать? - Может сие поведение там прописано?

ТeraМoune
Юзер

ТeraМoune - 8 декабря 2019 01:36 -

NONSENS,
Ну я не нашёл никаких свидетельств существования ошибок при неверном ЧПУ у 9.5, а в 8.3 подавно. И даже в 9.2> версиях ЧПУ и сео контроль ровно такой же какой я его вижу и в 13+ то есть изменения может и есть но точно не о том о чём идёт тут речь.

.htaccess не поможет, это список правил перенаправлений, контроля доступа и конфигурации сервера и ничего общего с движком и бд общего не имеет.

Не будите же Вы каждое правило вручную описывать RewriteRule для всех новостей. .htaccess и нужен для создание 1 строки по маске которого будет разбираться ссылка и какие параметры из этой ссылки будут перенады

Flash
Эксперт

Flash - 8 декабря 2019 09:17 -

Не знаю как именно на 9.5, но на 9.0 такого не вижу.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх