Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » Общие вопросы » Как вернуть добуквенный ЧПУ URL статьи?

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


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

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

Раньше сидел на 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 - -

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

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

deadluk
Юзер

deadluk - -

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

ТeraМoune
Юзер

ТeraМoune - -

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

deadluk
Юзер

deadluk - -

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

ТeraМoune
Юзер

ТeraМoune - -

Просто я вот сейчас поставил 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 - -

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

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

ТeraМoune
Юзер

ТeraМoune - -

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

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

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

Flash
Эксперт

Flash - -

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

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

наверх