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

Как реализовать модуль без статических страниц?


     12.01.2021    модуль    Все вопросы » Общие вопросы    1016

вопрос
Суть: необходимо написать модуль, позволяющий делать редирект на страницы в зависимости от окончания url.
Пример: если делаю со статической страницей использую url вида: site.ru/code.html/345
В файле code.php прописываю следующее

$nameget = strval( $_GET['route'] );
if( $nameget ==345)
{
    header('Location: http://www.example.com/');
exit;
}

Здесь все понятно. А вот если необходимо использовать url вида site.ru/345 или site.ru/code/345 где необходимо что прописать? Спасибо

Ответа пока нет


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

dj-avtosh
PHP-developer

dj-avtosh - 12 января 2021 10:39 -

Здравствуйте. Распечатайте переменную $_REQUEST и там увидите то, что Вам нужно.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

macteram
Юзер

macteram - 12 января 2021 10:46 -

dj-avtosh, Добрый день! Если не трудно, можно по подробнее

dj-avtosh
PHP-developer

dj-avtosh - 12 января 2021 11:03 -

распечатайте переменную $_REQUEST
print_r($_REQUEST);

и вы получите массив с ключом и значением того, что Вам нужно.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

macteram
Юзер

macteram - 12 января 2021 11:30 -

dj-avtosh,
Array ( [do] => static [page] => code [seourl] => code [route] => 345 )

Я так понял в engine.php добавляем
	case "code" :
		include_once ENGINE_DIR . '/modules/mod/code.php';
		break;

Как дальше с этим работать?)

dj-avtosh
PHP-developer

dj-avtosh - 12 января 2021 11:32 -

в $_REQUEST['route'] у вас вернулось 345. В этом ведь был вопрос?

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

macteram
Юзер

macteram - 12 января 2021 11:59 -

Впринципе, понятно, что $_REQUEST - глобальная переменная, которая выводит сведения об url. Но как сделать (в каком файле прописать правила), чтобы при url site.ru/345 шел редирет на example.com (код привожу ниже)

$nameget = strval( $_GET['route'] );
if($nameget )
{
$altname = $db->super_query( "SELECT alt_name FROM " . PREFIX . "_category WHERE ca_randkey = '{$nameget}'" );
header('Location: https://site.com/'.$altname['alt_name']);
//exit;
}
else 
{
    echo "Данного кода не существует, либо неправильно считан код";
        
}
]

dj-avtosh
PHP-developer

dj-avtosh - 12 января 2021 12:45 -

strval тут лишний

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

macteram
Юзер

macteram - 12 января 2021 13:07 -

Ладно, как хотя бы реализовать переход (работу кода написанного выше) с url вида site.ru/code/1423423

lutskboy
Эксперт

lutskboy - 12 января 2021 19:09 -

как то так

switch ($_GET['route']) {
	case 'google':
		# code...redirect kyda to na google
		break;

	case '123':
		# code...redirect kyda to na 123
		break;		
	
	default:
		#код сработает если $_GET['route'] не 123 и не google
		break;
}

macteram
Юзер

macteram - 13 января 2021 11:29 -

Простым языком, как изменить ссылки вида site.ru/code.php/{здесь мой код} на ссылки вида site.ru/{здесь мой код} или site.ru/code/ {здесь мой код} без использования htacces

lutskboy
Эксперт

lutskboy - 13 января 2021 12:39 -

прочитайте про роутинг. там все запросы на один файл отсылают. и разбирают переменную $_SERVER['REQUEST_URI']. разбивают ее на части по / . если я правильно вас понял.
но скорее всего и это не то. все зависит от того как правильно задан вопрос

dj-avtosh
PHP-developer

dj-avtosh - 13 января 2021 15:59 -

при помощи parse_url разберите $_SERVER['REQUEST_URI']
https://www.php.net/manual/ru/function.parse-url.php

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

TeraMoune
Эксперт

TeraMoune - 13 января 2021 21:05 -

без использования htacces

Этого не избежать, если ссылки не стандартные и после обыденных расширений файлов если ссылки оканчиваются на таковые нужно обязательно использовать правила чпу. Иначе ссылки будут возвращать Not Found.

И с таким ответом увы, Вы даже парадный вход не пройдёте чтобы попасть в серверную часть где будет разбор.

htaccess и конфиг ngnix для правил чпу предназначен для того, чтобы сервер воспринимал несуществующие адреса и знал на какие url в конце концов послать запрос.

Тестовый репозиторий установки плагинов: teramoune

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

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

наверх