m.InfoPage.pl » Moje porady dla ludzi z netu » wersja mobilna.
Linki zewnętrzne bez linków zewnętrznych! Przekierowanie za pomocą PHP.
Data dodania: 2010-11-19 12:27:50
Dziś odwiedziłem stronę, która miała kilka linków zewnętrznych. Na pierwszy rzut oka nie były to linki wychodzące ze strony, co jest ważne dla pozycjonera, a linki, które kierowały na pliku "redirect.php". Jednak po kliknięciu na wybrany link
http://www.adres_strony/redirect.php?goto=1
w nowej zakładce otwierała się strona zewnętrzna! Trochę mnie to zaskoczyło, że pomimo braku linków zewnętrznych linki prowadziły do obcych domen.
Bardzo mnie to zaciekawiło, więc zacząłem drążyć temat. Zapraszam do lektury.
W pierwszej kolejności musimy zrozumieć mechanizm działania.
Wyświetlamy linki na głównej stronie do stron zewnętrznych, tylko, że one (linki) nie będą prowadzić do zewnętrznych stron, a do naszej podstrony serwisu. Nasza podstrona będzie miała za zadanie przekierować nas na stronę zewnętrzną, ale na taką, jaką wskaże parametr zmiennej "goto".
Teraz elementy układanki.
W "index.php" znajdować się będą spreparowane ;) linki, czyli linki z parametrami, przekazywanymi do drugiej podstrony serwisu.
<a href="http://www.adres_strony.pl/redirect.php?goto=1">adres 1</a>
Po kliknięciu na ww. link zostaniemy przeniesieni na podstronę "redirect.php" z parametrem "goto" równym "1".
Jeśli chcemy, aby strona otwierała się w nowej zakładce, dopisujemy na początku "target="_blank"":
<a target="_blank" href="http://www.merde.pl/redirect.php?goto=1">1</a><br>
Plik "redirect.php" odpowiada za przekierowanie. Na mojej stronie znajdują się już gotowe skrypty automatycznego przekierowania strony na inny adres, ja skorzystam z Szybkie przekierowanie w meta tag.
<meta http-equiv="refresh" content="10;url=http://www.adres_strony.pl">
Oprócz automatycznego przekierowania, dodatkowo w pliku "redirect.php" musi znajdować się mały test. Jego zadaniem będzie sprawdzenie, jaki parametr kryje się pod zmienną "goto"
$_GET["goto"]
i w zależności od posiadanej wartości, wykona kolejne zadanie, lub nie :)
Proponuję wykorzystać "IFa":
if ($_GET["goto"]=='')
{
echo 'nic';
}
Powyższy skrypcik można przetłumaczyć tak. Jeśli zmienna "goto" jest pusta, wyświetl słowo "nic". Proste. Ale gdy będzie cyfra "1", to....
if ($_GET["goto"]==1)
{
$zmienna = 'www.adres_strony.pl';
}
...to podstaw do zmiennej o nazwie "$zmienna" ciąg znaków "'www.adres_strony.pl'". Oczywiście możemy dodawać kolejne "IFy", pamiętając o zmianie parametru "goto":
if ($_GET["goto"]==2)
{
$zmienna = 'www.adres_strony_2.pl';
}
if ($_GET["goto"]==3)
{
$zmienna = 'www.adres_strony_3.pl';
}
if ($_GET["goto"]==4)
{
$zmienna = 'www.adres_strony_4.pl';
}
Dlaczego podstawiamy pod zmienną "$zmienna" ciągi znaków? Otóż, trochę zmodyfikuję przekierowanie, o którym wspominałem na początku. Zamiast "adres_strony.pl" będzie się tam znajdować zmienna. Wyglądać to będzie bardziej profesjonalnie ;)
echo '<meta http-equiv="refresh" content="0;url=http://'.$zmienna.'">';
Według mnie jest to ciekawe rozwiązanie dla osób, które chcą zamieszczać na swojej stronie odnośniki do obcych stron równolegle nie wspomagając za free właścicieli tych stron.
Gotowe skrypty do pobrania znajdują się w tej paczce.
Serwis: m.infopage.pl ma charakter edukacyjny. Bardzo prosze nie kopiowac zawartosci mojego serwisu.