Paweł F.

Paweł F. Z Joomla! od 2005
roku, inne CMS też
się trafiają.

Temat: proste przekierowanie [PHP] pilne

Witam,
mam stosunkowo proste pytanie dla osób, które PHP znają i kochają.

Otóż 2 różne domeny wskazują na ten serwer (tak są ustawione DNS), chiałbym jednak aby adres NR1 wskazywał na folder ogólny (standardowy), a drugi na folder powiedzmy stara_www, jak to zrobić.
Czyli potrzebuje gotowy KOD w wklejenia w plik index.php.


//oczywiście serwer usługuję PHP i mam do niego dostęp przez FTP
Przemek Szalko

Przemek Szalko iOS Developer + Full
Stack Developer

Temat: proste przekierowanie [PHP] pilne

Ten kod na początku pliku..

<?php

if($_SERVER['HTTP_HOST'] == 'DOMENA_NR2') {
header('Location: http:// domena1 . pl/stara_www');
die;
}

?>

To przekierowanie będzie działać dla jednego pliku w którym umieścisz kod.
Aby zrobić bardziej ogólnie należałoby użyć mod_rewrite, o ile masz do niego dostęp.Przemek Szalko edytował(a) ten post dnia 14.05.08 o godzinie 11:51
Przemek Szalko

Przemek Szalko iOS Developer + Full
Stack Developer

Temat: proste przekierowanie [PHP] pilne

Używając mod_rewrite w pliku .htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www . )?domena2\.pl [NC]
RewriteRule ^/(.*) http:// domena1 . pl /stara_www/$1 [L,R]

EDIT: Spacje w nazwach domen są niepotrzebne - to tylko wstawki żeby GL nie interpretowało ich jako linki :-)Przemek Szalko edytował(a) ten post dnia 14.05.08 o godzinie 11:53
Paweł F.

Paweł F. Z Joomla! od 2005
roku, inne CMS też
się trafiają.

Temat: proste przekierowanie [PHP] pilne

dziękuje ślicznie, super.

Przy okazji znalazłem ciut rozszerzoną wersję:

<?php
if($_SERVER['HTTP_HOST'] == 'onet.pl')
header('Location: http://strona.pl/katalog1');
elseif($_SERVER['HTTP_HOST'] == 'wp.pl')
header('Location: http://strona.pl/katalog2');
else {
// nie rob nic
}
?>
Przemek Szalko

Przemek Szalko iOS Developer + Full
Stack Developer

Temat: proste przekierowanie [PHP] pilne

Pamiętaj że po wykonaniu funkcji header(); skrypt NADAL się wykonuje, mimo że użytkownika już nie ma na stronie. Jeśli nie chcesz symulować pracy skryptu w tle to po header(); proponuję zakończyć skrypt funkcją die();

konto usunięte

Temat: proste przekierowanie [PHP] pilne

Edit: coś się sypie z wyświetlaniem postów? Po wejściu na post nie widziałem żadnych odpowiedzi. Po odpisaniu pojawiło się ich kilka przed moją ;)Łukasz Muchlado edytował(a) ten post dnia 14.05.08 o godzinie 12:09
Paweł F.

Paweł F. Z Joomla! od 2005
roku, inne CMS też
się trafiają.

Temat: proste przekierowanie [PHP] pilne

Okey przerobiłem nieco:

<?php if ($_SERVER["HTTP_HOST"] == 'www.domena1.pl'; || $_SERVER["HTTP_HOST"] == 'domena1.pl']) { header("Location: http://www.domena1.pl/adres1/index.php";); } else { header("Location: http://www.domena2.pl/2008";); } ?>

tylko mi błąd wyskakuje "Parse error: parse error, unexpected ';' in" help what's wrongPaweł F. edytował(a) ten post dnia 14.05.08 o godzinie 12:23
Przemek Szalko

Przemek Szalko iOS Developer + Full
Stack Developer

Temat: proste przekierowanie [PHP] pilne

Parę średników i jeden nawias kwadratowy za dużo ;-)

<?php
if ($_SERVER["HTTP_HOST"] == 'www.domena1.pl' || $_SERVER["HTTP_HOST"] == 'domena1.pl') {
header("Location: http://domena1.pl/adres1/index.php");
} else {
header("Location: http://domena2.pl/2008");
}
?>

konto usunięte

Temat: proste przekierowanie [PHP] pilne

Otóż 2 różne domeny wskazują na ten serwer (tak są ustawione DNS), chiałbym jednak aby
adres NR1 wskazywał na folder ogólny (standardowy), a drugi na folder powiedzmy stara_www, > jak to zrobić.

Abstrahując od znaczenia słowa "przekierowanie", ten fragment wskazuje bardziej na "podpięcie" drugiej domeny pod katalog a nie klasyczny redirect... Co tak własciwie chcesz osiągnąć i jaki jest cel tego przekierowania?
Paweł F.

Paweł F. Z Joomla! od 2005
roku, inne CMS też
się trafiają.

Temat: proste przekierowanie [PHP] pilne

tak właśnie o to chodziło, aczkolwiek tytuł rzeczywiście ... ale to już inna historia, ważne że działa i już.

Następna dyskusja:

Potrzbna pomoc w PHP - piln...




Wyślij zaproszenie do