Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Przekierowanie na inną stronę.
Forum PHP.pl > Forum > Przedszkole
MasterChest
Witam.

Potrzebuję zrobić przekierowanie z bloga na wordpressie na inną stronę.
Załóżmy mam przykładowy post wordpress.com/jakis-post i chciałbym aby po przekierowaniu na inną domenę URL również tak samo wyglądał czyli domena.pl/jakis-post.
Dodatkowo chciałbym to 'jakis-post' umieścić w treści strony np. przy labelu 'tytuł'.

Wydaje mi się, że nie jest to sporo linijek kodu, próbowałem znaleźć coś działającego na tej zasadzie w internecie lecz zupełnie nie wiem pod jaką frazą szukać.
Czy mógłby mi ktoś pomóc?

Pozdrawiam serdecznie
muniekw
Nie wiem czy nie chciało Ci się szukać, ale ja wpisałem przekierowanie wordpress i znalazło masę stron... wink.gif

Link: przekierowanie wordpress
MasterChest
Źle chyba ująłem w sumie to co chciałem przekazać.

Chodzi mi o to, że na stronie załóżmy mam różne posty i w każdym jest odnośnik prowadzący na domenę.
Na domenie jest jeden główny folder, bez żadnych podstron i chcę by po kliknięciu na odnośnik w URL domeny pojawiał się taki sam... nie wiem jak to nazwać, dalsza część linku po prostu, jak wyżej w poście napisałem 'jakiś-post'. I bez względu na to jak link będzie wyglądać ma wyświetlać zawartość głównego folderu.


Trochę chaotycznie chyba opisane?
MasterChest
Trochę pokombinowałem i mam coś takiego:

  1. <?php
  2. $host = $_SERVER['HTTP_HOST'];
  3. $uri = rtrim($_SERVER['REQUEST_URI'], '/\\');
  4. $fileNparams = explode('?',$uri);
  5. $uri_parts = explode('&',$fileNparams[1]);
  6.  
  7. $generate_url =
  8. 'http://domena.pl/skrypt/'.$uri_parts[0];
  9.  
  10. ?>


Lecz nic mi z tego nie wyszło. To moja pierwsza styczność z php, szukałem w google i nic więcej wyskrobać nie potrafię.
Skrypt jest w pliku index.php w folderze domena.pl/skrypt.
Chcę aby po kliknięciu w odnośnik do tej domeny na stronie np. blog.pl/jakis_post przekierowało mnie na domena.pl/skrypt/jakis_post ale tak aby nadal pokazywało główny folder czyli /skrypt.

Jakieś sugestie?

Próbowałem również z REDIRECT_URI i HTTP_REFFERER i nadal nic.
PiNkOs
  1. <?php
  2. $uri = rtrim($_SERVER['REQUEST_URI'], '/\\');
  3. $fileNparams = explode('/',$uri);
  4. $ile = count($fileNparams);
  5. $generate_url = 'http://domena.pl/skrypt/'.$fileNparams[$ile-1];
  6.  
  7. echo $generate_url;
  8. ?>


Jeżeli chodzi o kod to tak to widzę.

Cytat
Skrypt jest w pliku index.php w folderze domena.pl/skrypt.


Z twoje opisu wynika, że chcesz uzyskać przekierowanie ze strony do której chcesz uzyskać przekierowanie, a tak się nie da.

Skrypt powinien raczej znajdować się po stronie ...

Cytat
blog.pl/jakis_post


Ew. możesz poczytać o HTTP_REFERER, ale to nie jest skuteczna metoda w 100%.
MasterChest
Cytat
Z twoje opisu wynika, że chcesz uzyskać przekierowanie ze strony do której chcesz uzyskać przekierowanie, a tak się nie da.



Może nie do końca przekierowanie, tzn.. Ze strony blog.pl/jakis_post po kliknięciu w odnośnik zawierający skrypt chciałbym aby były pobierane dane ze strony blog.pl na temat zmiennej url którą w tym wypadku jest jakis_post.
I po tym etapie po prostu dodała ją do domeny na było przekierowanie.


Jeżeli chodzi o HTTP_REFERER to tutaj by się właśnie to zdało, ale w moim przypadku nic z tym nie działa, próbowałem na wiele sposobów.

PiNkOs
Do strony w Wordpressie dodaj poniższy kod:

  1. <?php
  2. if(isset($_SERVER['HTTP_REFERER'])){
  3. $uri = rtrim($_SERVER['HTTP_REFERER'], '/\\');
  4. $fileNparams = explode('/',$uri);
  5. $ile = count($fileNparams);
  6. $generate_url = 'http://domena.pl/skrypt/'.$fileNparams[$ile-1];
  7.  
  8. header("Location: ".$generate_url);
  9. }else{
  10. echo 'Zmienna $_SERVER[\'HTTP_REFERER\'] pusta!';
  11. }
  12. ?>


Zastosowałem HTTP_REFERER. Zmienna ta zawiera adres, z którego nastąpiło wejście. Następnie przy użyciu explode() nastąpiło podzielenie adresu na elementy rozgraniczone slashem i zapisane w tablicy. Czyli np. jeżeli będzie to adres http://jakas_strona.pl/jakies_cos to zostanie to odpowiednio podzielone na [0] http: |[1]|[2] jakas_strona.pl |[3] jakies_cos. W tym wypadku interesuje nas element jakies_cos, który znajduje się na ostatnim miejscu w tablicy. Dlatego zastosowałem następnie funkcję count(), która zlicza ilość elementów tablicy. Kolejnym krokiem jest już przyklejenie ostatniego elementu tablicy do twojego linku. Z racji iż elementy tablicy numerowane są od zera, należy od ilość elementów tablicy odjąć jeden ($ile-1). No i ostatni krok to przekierowanie przy użyciu header("Location: ...").

Istnieją lepsze rozwiązania (np. wyrażenia regularne), w których można przewidzieć wszystkie przypadku, ale wcześniej użyłeś explode() dlatego nie chciałem mieszać.

Sprawa się komplikuje gdy wchodzisz z linku np. jakas_strona/zywnosc/owoce/jablka, wtedy zostanie pobrana sama wartość jablka. Dlatego, aby skrypt działał jak należy -----> Wyrażenia regularne

Mam nadzieję, że cię zrozumiałem i oto ci chodziło wink.gif
MasterChest
Działa dokładnie tak jak chciałem!
Jesteś wielki. Lkingsmiley.png
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.