Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekierowanie 301 w PHP
m.e.n.t.o.s.
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 13.11.2009

Ostrzeżenie: (0%)
-----


Mam taki oto problem. Mam starą stronę internetową, która jest zaindeksowana w google i ma jakieś tam wyniki. Teraz napisałem stronę od nowa i postawiłem na innym serwerze, a co za tym idzie, mam inny adres. Więc chciałbym zrobić przekierowanie 301 na starej stronie w PHP (nie mam możliwości użycia .htaccess) niektórych artykułów do nowej strony. Wydawałoby się nietrudne zadanie, a jednak napotykam problem i nie wiem jak go rozwiązać.

Mianowicie na starej stronie artykuły podzielone były na sekcje i były tam odnośniki wskazujące na tą samą stronę, np:
http://strona.pl/index.php?strona=artykul#podpunkt3
Google niektóre strony zaindeksował właśnie używając takich linków. Jak zrobiłem przekierowanie, strony które w google są zaindeksowane bez odnośnika wewnętrznego są normalnie przekierowywane. Natomiast jeśli kliknę w wynikach wyszukiwania google na link z hashem #, strona zostaje przekierowana na nowy serwer, ale tam zaraz jest przekierowywana na stronę błędu 404.

W przekierowaniu wyciągam i sprawdzam adres za pomocą zmiennych $_SERVER['HTTP_HOST'] i $_SERVER['REQUEST_URI']. Ale jak wyciągnąć z wywołanego adresu część znajdującą się po hash'u #. A może istnieje jakiś inny sposób, żeby sobie z tym poradzić?

poniżej część mojego przekierowania

  1. <?php
  2. $request_uri = ''; // zmienna przechowująca dalszą część adresu
  3. if($_SERVER['HTTP_HOST'] == 'stara_strona.org' || $_SERVER['HTTP_HOST'] == 'www.stara_strona.org' || $_SERVER['HTTP_HOST'] == 'stara_strona.xt.pl' || $_SERVER['HTTP_HOST'] ==' www.stara_strona.xt.pl')
  4. {
  5. if($_SERVER['REQUEST_URI'] == '/index.php?strona=autor&katalog=autor')
  6. $request_uri = '/o-mnie';
  7. else if($_SERVER['REQUEST_URI'] == '/index.php?strona=start&katalog=start')
  8. $request_uri = '/glowna';
  9.  
  10. header("HTTP/1.1 301 Moved Permanently");
  11. header("Location: <a href="http://www.nowa_strona.xn.pl&quot;.$request_uri);" target="_blank">http://www.nowa_strona.xn.pl".$request_uri);</a>
  12. header("Connection: close");
  13. }
  14. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
emtiej
post
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 18
Dołączył: 12.04.2009
Skąd: Rypin

Ostrzeżenie: (0%)
-----


  1. header("Location: <a href="http://www.nowa_strona.xn.pl".$request_uri);" target="_blank">http://www.nowa_strona.xn.pl".$request_uri);</a>


W tym chyba problem kolego...

Ten post edytował emtiej 25.01.2010, 20:44:52
Go to the top of the page
+Quote Post
m.e.n.t.o.s.
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 13.11.2009

Ostrzeżenie: (0%)
-----


jeszcze raz końcówka kodu, bo coś się źle wkleiło


header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.nowa_strona.xn.pl".$request_uri);
header("Connection: close");
exit;

I nikt nic nie wie?
Go to the top of the page
+Quote Post
Pilsener
post
Post #4





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Cytat
jak wyciągnąć z wywołanego adresu część znajdującą się po hash'u #


1. Zrób sobie:
  1. print_r($_SERVER);
- i już wiesz, czy adres z # jest w ogóle przekazywany i możliwy do odczytania

2. Teraz wystarczy rozbić:
  1. list($adres_przed_krzyzem,$adres_po_krzyzu) = explode("#",$adres);
- i zmontować na tej podstawie odpowiedni, nowy adres do przekierowania.

P.S. > gugiel łyka też przekierowania w meta
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 08:58