Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Generowanie linków wychodzących


Przejdź do rozwiązania Rozwiązane przez Pawliniak,

Rekomendowane odpowiedzi

Opublikowano

Witam

Chciałbym uzyskać informacje czy istnieje jakaś modyfikacja generująca linki wychodzące dla botów google? Chodzi mi oto że jak posiadam forum i umieszczę link do innej strony to wygeneruje przekierowanie z mojego linku ukrywając oryginalny adres.

 

Pozdrawiam

Opublikowano

Można zrobić coś w stylu pliku url.php w głównym katalogu forum z zawartością:

<?php
require_once './initdata.php';
require_once IPS_ROOT_PATH . 'sources/base/ipsRegistry.php';
     
ipsRegistry::init();

if (isset(ipsRegistry::$request['redirect']) 
    && filter_var(ipsRegistry::$request['redirect'], FILTER_VALIDATE_URL)
) {
    return ipsRegistry::getClass('output')->redirectScreen('Trwa przekierowanie...', ipsRegistry::$request['redirect']);
}

return ipsRegistry::getClass('output')->redirectScreen('Trwa przekierowanie...', ipsRegistry::$settings['board_url']);

A następnie modyfikacja aby każdy link był przekierowany na plik url.php:

 

Otwórz admin\sources\classes\text\parser\bbcode.php

 

Znajdź:

$replace = "<a href='{$url}' class='bbc_url' title='{$_title}'{$rel}>{$text}</a>";

Zamień na:

$replace = "<a href='" . $this->settings['board_url'] . "/url.php?redirect={$url}' class='bbc_url' title='{$_title}'{$rel}>{$text}</a>";

Zapisz i wyślij.

Opublikowano

Poprawiona wersja:

<?php
require_once './initdata.php';
require_once IPS_ROOT_PATH . 'sources/base/ipsRegistry.php';
     
ipsRegistry::init();

if (strlen($_SERVER['QUERY_STRING']) > 0) {
    $redirect_url = filter_var($_SERVER['QUERY_STRING'], FILTER_SANITIZE_URL);

    if (filter_var($redirect_url, FILTER_VALIDATE_URL)) {
        return ipsRegistry::getClass('output')->redirectScreen('Trwa przekierowanie...', $redirect_url);
    }
}

return ipsRegistry::getClass('output')->redirectScreen('Trwa przekierowanie...', ipsRegistry::$settings['board_url']);

Musisz też w pliku admin\sources\classes\text\parser\bbcode.php zmienić:

$replace = "<a href='" . $this->settings['board_url'] . "/url.php?redirect={$url}' class='bbc_url' title='{$_title}'{$rel}>{$text}</a>";

Na:

$replace = "<a href='" . $this->settings['board_url'] . "/url.php?{$url}' class='bbc_url' title='{$_title}'{$rel}>{$text}</a>";

Przy okazji zrobiłem tak aby działały też linki ze znakami diakrytycznymi.

  • Rozwiązanie
Opublikowano

Jeżeli nie działają tylko linki wewnętrzne, można zamienić w pliku admin\sources\classes\text\parser\bbcode.php


  1. $replace = "<a href='" . $this->settings['board_url'] . "/url.php?{$url}' class='bbc_url' title='{$_title}'{$rel}>{$text}</a>";

Na:


  1. if (!stristr($data['host'], $_SERVER['HTTP_HOST'])) {
  2. $replace = "<a href='" . $this->settings['board_url'] . "/url.php?{$url}' class='bbc_url' title='{$_title}'{$rel}>{$text}</a>";
  3. } else {
  4. $replace = "<a href='{$url}' class='bbc_url' title='{$_title}'{$rel}>{$text}</a>";
  5. }

Po tej modyfikacji linki wewnętrzne w ogóle nie będą przekierowywane, tylko zewnętrzne.


Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.