Ссылки через редирект

Автор Avdenago, 20 марта 2008, 16:43:43

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Roman

Пока все никак не определюсь, имеет ли смысл ставить редирект.
Заметил вот что. На данном сайте (simplemachines.ru) какое-то время назад, помню, редирект был. А сейчас, вижу, его уже нет. Почему было решено от него отказаться? Вопрос к Mavn, вероятно.

BIOHAZARD

вероятно потому, что сейчас ссылки с сайта вообще не обрабатываются (таг url), а идут плоским текстом, так что редиректить в большинстве случаев нечего
Мои моды:
  • RedirectPage
  • Counters
  • CustomSearch
  • SypexDumper
   адаптирую темы    1.1.хx<=>2.0задавая вопросы, старайтесь сразу указывать конечную цель, предполагаемый Вами путь не обязательно окажется самым коротким

Любые моды на заказ

Serifa

#102
В самом деле, чего мутить, когда можно использовать встроенный механизм. Пошла еще раз в настройках пороюсь.
Нет, ерунда какая-то получается, некрасиво.
«- Помощник капитана Бакстер, - заявил Лумис, - безбожно врет. Все отнюдь не под контролем, вернее, не под его контролем. Корабль захвачен представителями небелковой формы разумной жизни, которые маскируются под обслуживающих роботов, а некоторые даже не делают и этого...»
«То, что у тебя есть, лечится антибиотиками» (nowhere man, 1995)
В телеге срочно нужны читатели!

Hamelion23

уважаемые я может не вту степь написал но редирект есть редирек полазил поискал ничего подходящего не нашел помогите кто чем может спасибо!

Подскажите как сделать переадресацию через GET масив?

пример ссылок
redirect.php?dir=video
redirect.php?dir=music

<?php

$site=array(
'http://hamelion23.net/',
'http://hamelion23.net/r');

$redir = $_GET['id'];
switch ($redir) {
case 1:
echo header("Location: ".$site[video]);break;
case 2:
echo header("Location: ".$site[music]);break;
default:
echo "Неверное обращение к странице!";
}
?>

Help

Bugo


Drakonsa

Цитата: Hamelion23 от 30 октября 2010, 10:20:57
уважаемые я может не вту степь написал но редирект есть редирек полазил поискал ничего подходящего не нашел помогите кто чем может спасибо!

Подскажите как сделать переадресацию через GET масив?

пример ссылок
redirect.php?dir=video
redirect.php?dir=music

<?php

$site=array(
'video' => 'http://hamelion23.net/',
'music' => 'http://hamelion23.net/r');

$redir = $_GET['dir'];
switch ($redir) {
case 1:
echo header("Location: ".$site[video]);break;
case 2:
echo header("Location: ".$site[music]);break;
default:
echo "Неверное обращение к странице!";
}
?>

Help

Hamelion23


Татьяна84

#107
Цитата: BIOHAZARD от 20 марта 2009, 15:00:15
И ещё немного поизвращаемся над вышеприведённым примером...

array(
  'tag' => 'url',
  'type' => 'unparsed_content',
  'validate' => create_function('&$tag, &$data, $disabled', '
    $data = strtr($data, array(\'<br />\' => \'\'));
    global $boardurl;
    if (stripos($data, $boardurl) !== 0) $tag[\'content\'] = \'<a href="' . $boardurl . '/go.php?url=$1" target="_blank" rel="nofollow">$1</a>\';
    else $tag[\'content\'] = \'<a href="$1">$1</a>\';
  '),
),
array(
  'tag' => 'url',
  'type' => 'unparsed_equals',
  'after' => '</a>',
  'disallow_children' => array('email', 'ftp', 'url', 'iurl'),
  'disabled_after' => ' ($1)',
  'validate' => create_function('&$tag, &$data,  $disabled', '
  global $boardurl;
    if (stripos($data, $boardurl) !== 0) $tag[\'before\'] = \'<a href="' . $boardurl . '/go.php?url=$1" target="_blank" rel="nofollow">\';
    else $tag[\'before\'] = \'<a href="$1">\';
  '),
),


1. Добавлено $boardurl, чтоб ручками каждому не писать
2. Используется
stripos($data, $boardurl) !== 0
вместо
stristr($data, "my-domain.ru") === false
чтобы адрес уж точно начинался с нашего адреса
3. Добавил rel="nofollow", но это уже для параноиков (для меня)
4. Убрал таргет у внутренних ссылок, как мне кажется, так  удобнее посетителям

Кажется пора уже из этого мод сделать и выложить здесь и на см.орг

Подскажите, а как в этот код уже имеющийся также добавить один внешний урл, который также как и внутренние ссылки не должен закрываться(остальные внешние ссылки  также закрыты)?

Татьяна84


Татьяна84

Ну подскажите же, пожалуйста!

Фисташка

#110
Цитата: Татьяна84 от 11 апреля 2013, 16:58:23
Ну подскажите же, пожалуйста!
strpos($data, $boardurl) === false) && (strpos($data, "сайт.ру") === false)

Татьяна84

Цитата: Фисташка от 11 апреля 2013, 17:44:42strpos($data, $boardurl) === false) && (strpos($data, "сайт.ру") === false))
Вставляю, получаю ошибку сервера 500. Как правильно должен выглядеть код?
Спасибо.

Фисташка

Цитата: Татьяна84 от 11 апреля 2013, 18:24:44
Вставляю, получаю ошибку сервера 500. Как правильно должен выглядеть код?
Спасибо.


Скобка лишняя, поправила

Киньте свой кусок кода, я поправлю как надо

Татьяна84

         array(
                                'tag' => 'url',
                                'type' => 'unparsed_content',
                                'validate' => create_function('&$tag, &$data, $disabled', '
                                $data = strtr($data, array(\'<br />\' => \'\'));
                                if (stristr($data, "site.ru") === false) $tag[\'content\'] = \'<a href="http://site.ru/forum/go.php?$1" target="_blank">$1</a>\';
                                else $tag[\'content\'] = \'<a href="$1" target="_blank">$1</a>\';
                                '),
                        ),
                        array(
                                'tag' => 'url',
                                'type' => 'unparsed_equals',
                                'after' => '</a>',
                                'disallow_children' => array('email', 'ftp', 'url', 'iurl'),
                                'disabled_after' => ' ($1)',
                                'validate' => create_function('&$tag, &$data, $disabled', '
                                if (stristr($data, "site.ru") === false) $tag[\'before\'] = \'<a href="http://site.ru/forum/go.php?$1" target="_blank">\';
                                else $tag[\'before\'] = \'<a href="$1" target="_blank">\';
                                '),
                        ),

Фисташка

array(
                                'tag' => 'url',
                                'type' => 'unparsed_content',
                                'validate' => create_function('&$tag, &$data, $disabled', '
                                $data = strtr($data, array(\'<br />\' => \'\'));
                                if ((stristr($data, "site.ru") === false) && (strpos($data, "сайт.ру") === false)) $tag[\'content\'] = \'<a href="http://site.ru/forum/go.php?$1" target="_blank">$1</a>\';
                                else $tag[\'content\'] = \'<a href="$1" target="_blank">$1</a>\';
                                '),
                        ),
                        array(
                                'tag' => 'url',
                                'type' => 'unparsed_equals',
                                'after' => '</a>',
                                'disallow_children' => array('email', 'ftp', 'url', 'iurl'),
                                'disabled_after' => ' ($1)',
                                'validate' => create_function('&$tag, &$data, $disabled', '
                                if ((stristr($data, "site.ru") === false) && (strpos($data, "сайт.ру") === false)) $tag[\'before\'] = \'<a href="http://site.ru/forum/go.php?$1" target="_blank">\';
                                else $tag[\'before\'] = \'<a href="$1" target="_blank">\';
                                '),
                        ),


В двух местах вместо:
(stristr($data, "site.ru") === false)

Ставьте:
((stristr($data, "site.ru") === false) && (strpos($data, "сайт.ру") === false))

Татьяна84

Огромная Вам Благодарность. Работает!!!

jerboa

Добрый день! Не стала создавать ради своего вопрос отдельную тему, т.к. он перекликается с этой.
Мне нужно, чтобы через сторонний сайт обрабатывались ссылки только на конкретный домен. т.е. например из ссылок на
мойфорум.ру
vk.com
shop.com
только shop.com шел через мою обработку.
Сижу рассматриваю кодинг и понимаю, что без понятия, как извлечь куда именно ведет ссылка, тем более как-то обработать эту информацию...

BoPoH

поставить мод RedirectPage и прописать белый список не подходит?

jerboa

Цитата: BoPoH от 22 августа 2015, 19:17:39поставить мод RedirectPage и прописать белый список не подходит?

Если я правильно понимаю, RegirectPage выводит просто на страницу редиректа, а мне нужно пустить через сторонний сайт-обработчик. т.е. направить ссылку по типу другойсайт.ру/код?=тутужессылка

kak2z

Цитата: jerboa от 23 августа 2015, 13:14:00Если я правильно понимаю, RegirectPage выводит просто на страницу редиректа, а мне нужно пустить через сторонний сайт-обработчик. т.е. направить ссылку по типу другойсайт.ру/код?=тутужессылка
можно в файле subs.php найти обработку тега URL и там обрабатывать ссылки и заменять нужные...
а можно в файле load.php найти функцию censorText и там уже обрабатывать текст...
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

jerboa

Цитата: kak2z от 23 августа 2015, 13:21:54можно в файле subs.php найти обработку тега URL и там обрабатывать ссылки и заменять нужные...
а можно в файле load.php найти функцию censorText и там уже обрабатывать текст...


редактирование subs.php - это то, с чего и начинался мой вопрос. Я вижу там только получение ссылки в целом и без понятия, как определить на какой домен она идет (т.е. подходит мне под обработку или нет). В тупую все подряд ссылки не хочется пускать через обработчик..
А в load.php если я правильно поняла censorText меняет текст, но не ссылку? Т.е. просто по сути обработка словаря замен, можно "насильно" в кодинге поставить еще одну обработку, но это будет просто прохождение по всему тексту.. А если ссылка закрыта под словом "ссылка", то, скорее всего, его обрабатывать не будет
но может я что-то не так поняла, простите блондинку если что

valdnieks

Комп на месте, редактируйте. Только файлы скопируйте, а то всё лопнет.
Registered Linux user #325316
Последняя версия SMF: SMF 2.0.15
Версия GD: bundled (2.1.0 compatible)
Версия MySQL: 5.5.23
PHP: 5.6.30
Версия Web сервера: Apache/2.4.25 (Win64) PHP/5.6.30