Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Jak przekierować wiele adresów
php11
post 7.10.2016, 01:03:50
Post #1





Grupa: Zarejestrowani
Postów: 215
Pomógł: 5
Dołączył: 11.02.2011

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


Cześć,

chciałbym przekierować wiele adresów (jeżeli adres zawiera tekst) na nowe.
Pojedynczo nie ma problemu:

  1. $url = $_SERVER['REQUEST_URI'];
  2. $zly = 'ala';
  3. $dobry = 'kot';
  4.  
  5. if(strpos($url, $zly)) {
  6. header("HTTP/1.1 301 Moved Permanently");
  7. header('Location: <a href="http://domena.pl/'.$dobry" target="_blank">http://domena.pl/'.$dobry</a> ) ;
  8. exit();
  9. }


ale mam tych adresów dużo i chciałbym uprościć :-)

  1. return array(
  2. 'zielony' => 'nowy-adres-czerwony',
  3. 'gruszka' => 'nowy-adres-jablko',
  4. 'zima' => 'nowy-adres-lato',
  5. )


Tylko nie wiem, jak "wsadzić" dane z array :-)

Dzięki za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
emstawicki
post 7.10.2016, 07:34:08
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 40
Dołączył: 2.06.2016
Skąd: Olsztyn

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


1. Wysyłanie HTML w nagłówku chyba nie zadziała.
2. Jeżeli masz tablicę to sprawdź czy jest klucz w tej tablicy z uri (array_key_exists).


--------------------
Jak w Olsztynie, to tylko w Revolver Rock Cafe .
Sprawdź postęp propagacji DNS
Go to the top of the page
+Quote Post
php11
post 7.10.2016, 08:38:00
Post #3





Grupa: Zarejestrowani
Postów: 215
Pomógł: 5
Dołączył: 11.02.2011

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


Cytat
1. Wysyłanie HTML w nagłówku chyba nie zadziała.


Tak, dzięki, forum dopisało

Cytat
2. Jeżeli masz tablicę to sprawdź czy jest klucz w tej tablicy z uri (array_key_exists).


Chcę dopasować tylko część adresu. Jeżeli ta część występuje w $url to robię przekierowanie 301.
array_key_exists chyba nie zadziała, a poza tym nie wiem, jak przypisać właściwe przekierowanie.
:-)


Dziękuję za pomoc...

  1. $url = 'jakis-adres-z-wyrazem-zima-w-nim';
  2. $zly = 'zima';
  3. $dobry = 'nowy-adres';
  4.  
  5. if(strpos($url, $zly)) {
  6. header("HTTP/1.1 301 Moved Permanently");
  7. header('Location: Przekierowanie na nowy adres' ) ;
  8. exit();
  9. }


Mogę wstawić wiele takich, a nie umiem jednego, który pobierze z tablicy...

Ten post edytował php11 7.10.2016, 08:55:58
Go to the top of the page
+Quote Post
Pyton_000
post 7.10.2016, 09:25:34
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Robisz tablicę klucz jako fraza wartość jako url i lecisz foreach po każdym.
Go to the top of the page
+Quote Post
php11
post 7.10.2016, 10:13:16
Post #5





Grupa: Zarejestrowani
Postów: 215
Pomógł: 5
Dołączył: 11.02.2011

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


Włączyłem wyświetlanie błędów i wyciągnąłem wnioski...

  1.  
  2.  
  3. ini_set( 'display_errors', 'On' );
  4. error_reporting( E_ALL );
  5.  
  6.  
  7. $tablica = array(
  8. 'zielony' => 'nowy-adres-czerwony',
  9. 'gruszka' => 'nowy-adres-jablko',
  10. 'zima' => 'nowy-adres-lato',
  11. );
  12.  
  13.  
  14. foreach ($tablica as $klucz => $wartosc) {
  15. // print "\$tablica[$klucz] => $wartosc".'<br />';
  16. print "$klucz => $wartosc".'<br />';
  17. }
  18.  
  19. $url = $_SERVER['REQUEST_URI'];
  20. $zly = $klucz;
  21. $dobry = $wartosc;
  22.  
  23. if(strstr($url, $zly)) {
  24. header("HTTP/1.1 301 Moved Permanently");
  25. header('Location: domena.pl/'.$dobry ) ;
  26. exit();
  27. }
  28.  


Kod działa, ale tylko dla ostatniej pozycji tablicy: zima.
Poprawicie? Bo już wyczerpałem swoje możliwości...

Dzięki :-)

Ten post edytował php11 7.10.2016, 12:22:03
Go to the top of the page
+Quote Post
Pyton_000
post 7.10.2016, 12:58:32
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Miałeś w pętli sprawdzać a nie poza nią:

  1. <?php
  2.  
  3.  
  4.  
  5. ini_set( 'display_errors', 'On' );
  6. error_reporting( E_ALL );
  7.  
  8.  
  9. $tablica = array(
  10. 'zielony' => 'nowy-adres-czerwony',
  11. 'gruszka' => 'nowy-adres-jablko',
  12. 'zima' => 'nowy-adres-lato',
  13. );
  14.  
  15.  
  16. foreach ($tablica as $klucz => $wartosc) {
  17. if(strstr($_SERVER['REQUEST_URI'], $klucz) !== false) {
  18. header("HTTP/1.1 301 Moved Permanently");
  19. header('Location: domena.pl/'.$dobry ) ;
  20. exit();
  21. }
  22. }
Go to the top of the page
+Quote Post
php11
post 7.10.2016, 14:04:48
Post #7





Grupa: Zarejestrowani
Postów: 215
Pomógł: 5
Dołączył: 11.02.2011

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


Gapa ze mnie :-)
Dzięki

  1.  
  2. ini_set( 'display_errors', 'On' );
  3. error_reporting( E_ALL );
  4.  
  5. $tablica = array(
  6. 'zielony' => 'nowy-adres-czerwony',
  7. 'gruszka' => 'nowy-adres-jablko',
  8. 'zima' => 'nowy-adres-lato',
  9. );
  10.  
  11. foreach ($tablica as $zly => $dobry) {
  12. print "$zly => $dobry".'<br />';
  13. if(strstr($_SERVER['REQUEST_URI'], $zly)) {
  14. header("HTTP/1.1 301 Moved Permanently");
  15. header('Location: domena.pl/'.$dobry ) ;
  16. exit();
  17. }
  18. }
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:02