Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Przekierowanie header z https na http
Forum PHP.pl > Forum > Przedszkole
tenloginjestzajety
Witam mam problem z indeksowaniem w google, zamiast http:// robot zaczął indeksować https:// nie wiem jak to zablokować lub przekierować, próbowałem tak:

  1. <?php
  2. if(substr($_SERVER['HTTPS'], 0, 3)) {
  3. header("HTTP/1.1 301 Moved Permanently");
  4. header("Location: http://strona.pl".$_SERVER['REQUEST_URI']);
  5. header("Connection: close");
  6. }
  7. ?>



header("Location: http://strona.pl".$_SERVER['REQUEST_URI']);
StrefaPi
  1. RewriteCond %{HTTPS} off
  2. RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

oczywiście w htaccess
tenloginjestzajety
Dzięki, ale w przeglądarce wyskakuje komunikat o nieskończonym przekierowaniu, dlatego próbowałem to zrobić w php.
trueblue
Pokaż cały .htaccess
tenloginjestzajety
  1. RewriteEngine On
  2. RewriteCond %{HTTPS} off
  3. RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


ale posiadam też w php header kilka przekierowań.
  1. <?php
  2. if(substr($_SERVER['HTTP_HOST'], 0, 3)=='www') {
  3. header("HTTP/1.1 301 Moved Permanently");
  4. header("Location: http://strona.pl".$_SERVER['REQUEST_URI']);
  5. header("Connection: close");
  6. }
  7. ?>
  8.  
  9. <?php
  10. if(strpos( $_SERVER['REQUEST_URI'], '%C5%BA' ) !== false) {
  11. $zamiana = str_replace('%C5%BA','z',$_SERVER['REQUEST_URI']);
  12. header("HTTP/1.1 301 Moved Permanently");
  13. header("Connection: close");
  14. }
  15. ?>


header("Location: http://strona.pl".$zamiana);

Nie wiem również dlaczego nie działa przekierowanie ź na z, a krzaki typu: %C5%BA zmienia na z bez problemu.
trueblue
Wyrzuć ten pierwszy fragment kodu w php.

Kod
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domena.pl
RewriteRule ^(.*)$ http://domena.pl/$1 [R=301,L]

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]


A ten drugi fragment czemu ma służyć?
tenloginjestzajety
google zaindeksowal mi krzaki w adresach url, zastąpiłem pl znaki w bazie normalnymi dla url i teraz robię przekierowanie żeby nie stracić pozycji dla podstron, które są już zaindeksowane w google. Dlatego chciałbym aby wszystkie podstrony z pl znakami przekierowywały na te same podstrony, ale bez pl znaków.

Miałem wcześniej:
strona.pl/żółw

a w google są zaindeksowane różne wersje z krzakami lub z pl znakami, chciałbym to wszystko przekierować na:
strona.pl/zolw

Po zmianie serwera zrobił się totalny chaos.
trueblue
Pokombinuj z: http://php.net/manual/en/function.strtr.php
Albo: http://stackoverflow.com/q/19464217
tenloginjestzajety
dzięki, ale ten kod również powoduje wyświetlanie komunikatu przez przeglądarke o niekończącym się przekierowaniu, a wszystkie header z php usunąłem. Walcze z tym już kilka godzin :/
  1. RewriteEngine On
  2. RewriteCond %{HTTP_HOST} ^www.domena.pl
  3. RewriteRule ^(.*)$ [url="http://domena.pl/$1"]http://domena.pl/$1[/url] [R=301,L]
  4.  
  5. RewriteCond %{HTTPS} off
  6. RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]


możesz zerknać?
trueblue
Zmień domena.pl na swoją.
W ostatniej linijce ma być przekierowanie na adres z protokołem https, po to jest warunek powyżej.
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.