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
<?php $request_uri = ''; // zmienna przechowująca dalszą część adresu 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') { if($_SERVER['REQUEST_URI'] == '/index.php?strona=autor&katalog=autor') $request_uri = '/o-mnie'; else if($_SERVER['REQUEST_URI'] == '/index.php?strona=start&katalog=start') $request_uri = '/glowna'; header("Location: <a href="http://www.nowa_strona.xn.pl".$request_uri);" target="_blank">http://www.nowa_strona.xn.pl".$request_uri);</a> exit; } ?>