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


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

Rekomendowane odpowiedzi

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

Odnośnik do komentarza
Udostępnij na innych stronach

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.

Odnośnik do komentarza
Udostępnij na innych stronach

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.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Rozwiązanie

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.


Odnośnik do komentarza
Udostępnij na innych stronach

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ę.