Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przekierowanie na właściwy link przy niestniejącym pliku
Forum PHP.pl > Forum > PHP
Avatarus
Witam
Ostatnio przekonwertowałem forum z phpbb na smf. No i jest taki problem.
Przykładowy link z starego phpbb: http://www.silkroadonline.com.pl/phpbb/vie...c.php?t=123#123
Przykładowy link z nowego smf: http://www.silkroadonline.com.pl/forum/index.php?topic=123

niestety forum phpbb było długo dlatego też jest sporo starych linków. Jak zrobić żeby automatycznie konwertował te linki ze starych do nowych?

wymyśliłem coś takigo że zrobiłem katalog phpbb w nim plik viewtopic.php i on pobiera zmienna $_GET[t] z linku i miał za pomocą header ("location ....
przenosić do poprawnego linku na forum. Tylko że nie wiem czemu przed numer topicu wstawia się #, zawsze niezależnie od tego jak wyciągam ten numer topicu (próbowałem explodem na get[t], preg_matchem itp i dalej jest ten znak # przed numerem topicu).

Jak można temu zaradzić?
Może lepiej skorzystać z .htaccess?
Jeśli tak to jak napisać poprawnie tę formułę?

Pozdrawiam
thornag
Pokaz kod ktorym to robisz.
Avatarus
było kilka wersji,ostatnia:
Kod
<?php
$wyniki=explode('#',$_GET[p]);
header ('Location: http://www.silkroadonline.com.pl/forum/index.php?topic='.$wyniki[1]);
?>
wlamywacz
Wszystkiego dane po chaszu (#) są niedostępne dla php. Używa go przeglądarka i js
matx132
Cytat(Avatarus @ 20.06.2008, 10:22:02 ) *
było kilka wersji,ostatnia:
Kod
<?php
$wyniki=explode('#',$_GET[p]);
header ('Location: http://www.silkroadonline.com.pl/forum/index.php?topic='.$wyniki[1]);
?>



zrób to lepiej tak
Kod
<?php
$wyniki=$_GET['t'];
header ('Location: http://www.silkroadonline.com.pl/forum/index.php?topic='.$wyniki);
?>


i działać będzie dobrze
batman
Cytat(wlamywacz @ 20.06.2008, 14:59:24 ) *
Wszystkiego dane po chaszu (#) są niedostępne dla php. Używa go przeglądarka i js

Niestety nie mogę się z Tobą zgodzić: parse_url
wlamywacz
Batman

Aj mój błąd. Do dzisiaj nie znałem tej funkcji mimo iż potrzebna mi jest aktualnie w mojej aplikacji sciana.gif
Kicok
Cytat(batman @ 20.06.2008, 15:18:09 ) *
Niestety nie mogę się z Tobą zgodzić: parse_url


Fakt, ta funkcja potrafi rozpoznać #kotwicę w stringu, ale co to ma wspólnego z tematem? Tak jak mówił włamywacz: żadna #kotwica wpisana w okienko adresu przeglądarki nie dotrze do PHP, czyli w $_GET jej nie będzie.
wlamywacz
Informacja: Funkcja nie działa na relatywnych URLach.

Czyli jak mam wildcarding u siebie to chyba to nie zadziała tongue.gif
batman
Cytat(Kicok @ 20.06.2008, 17:52:26 ) *
Fakt, ta funkcja potrafi rozpoznać #kotwicę w stringu, ale co to ma wspólnego z tematem?

Z tematem nie ma wiele wspólnego, ale prostuje to tezę, że php nie ma dostępu do danych po znaku #. Ma ale nie w przypadku adresu, który jest wpisany do przeglądarki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.