Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][APACHE] przekierowania
Forum PHP.pl > Forum > PHP
szoko6
Witam

Na swoim serwerze Apacha mam mod_rewrite, ktory sluzy mi do przekierowywan na skrypt w PHP, wyglada on tak:

  1. RewriteEngine On
  2.  
  3. RewriteRule (.*?)_(\d+)\.spx$ redirect.php?nick=$1&timestamp=$2


Teraz skrypt PHP:
  1. <?php
  2. $mainDir = "/voice";
  3.  
  4. $exp = ".spx";
  5.  
  6. $nick = $_GET['nick'];
  7.  
  8. $timestamp = $_GET['timestamp'];
  9.  
  10. $data = date("/Y/n/j/",$timestamp);
  11.  
  12. $redirectTo = $mainDir . $data . $nick . "_" . $timestamp . $exp;
  13.  
  14. //print $redirectTo;
  15. //przekierowanie
  16. header("Location: " . $redirectTo);
  17. ?>

Zasadniczo chodzi o to ze mod_rewrite odczytuje wyrazeniem regularnym nick usera oraz jego timestamp (oddzielone _) np. https://localhost/voice/COMmer_1309564615.spx
nick = COMmer
timestamp = 1309564615
Date tlumaczy timestamp na konkretny rok/miesiac/dzien i wszystko ladnie rozszyfrowuje, print zwraca mi cos takiego:
  1. /voice/2011/7/2/COMmer_1309564615.spx

Jednak gdy juz zrobie przekierowanie headerem to wychodzi przekierowanie na taka strone:
https://localhost/voice/2011/7/2/2011/7/2/2..._1309564615.spx

Ktos ma pomysl o co chodzi?
nospor
$redirectTo = $mainDir . $data . $nick . "_" . $timestamp . $exp;
Tak ustawiłeś to tak przekierowuje... nie za bardzo rozumiem Twojego zdziwienia.
szoko6
Nie bardzo rozumiem Twoja odpowiedz... pisze ze $redirectTo = /voice/2011/7/2/COMmer_1309564615.spx, tymczasem hedaer wielokrotnie mi powiela date
nospor
Przepraszam, ale jak sam zapewne widzisz link jest ucięty (tekst linku) i nie widać, że chodzi ci o powielanie smile.gif
No robisz header bez warunkowo wiec za każdym razem przekierowujesz na samego siebie i ci się zapętla.
szoko6
No tak, ze tez od razu tego nei zauwazylem.... dzieki wielkie, wiec musze cos w mod_rewrite podlubac jeszcze

Jeszcze jedna sprawa, to osob bardziej obeznanych. mod_rewrite ladnie mnie przekierowuje jednak mam teraz zasadnicze i wazne pytanie... czy dziala to tez na metode PUT? Tzn. user wysyla jakis plik na serwer http://adres_serwera.pl/voice/nazwa_timestamp.spx, gdy przychodzi cos takiego mod_rewrite ladnie mi rozpoznaje ze ma zrobic przekierowanie, jednak jak wymusic to, by w wypadku nie istneinia katalogu do ktorego przenosze (np do /voice/2011/20/5/nazwa_timestamp.spx), zostal on stworzony? Teraz zrobienie curl takeij postaci:

Kod
curl --upload-file test_1234567890.spx --insecure https://localhost/voice/


Konczy mi sie 403 - Forbidden, jakies ustawienia do WebDAVa?
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.