Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][APACHE] przekierowania
szoko6
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 18.08.2011

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


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




$redirectTo = $mainDir . $data . $nick . "_" . $timestamp . $exp;
Tak ustawiłeś to tak przekierowuje... nie za bardzo rozumiem Twojego zdziwienia.
Go to the top of the page
+Quote Post
szoko6
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 18.08.2011

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


Nie bardzo rozumiem Twoja odpowiedz... pisze ze $redirectTo = /voice/2011/7/2/COMmer_1309564615.spx, tymczasem hedaer wielokrotnie mi powiela date
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przepraszam, ale jak sam zapewne widzisz link jest ucięty (tekst linku) i nie widać, że chodzi ci o powielanie (IMG:style_emoticons/default/smile.gif)
No robisz header bez warunkowo wiec za każdym razem przekierowujesz na samego siebie i ci się zapętla.
Go to the top of the page
+Quote Post
szoko6
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 18.08.2011

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


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?

Ten post edytował szoko6 18.08.2011, 16:47:28
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 15:49