Autor Zpráva
ja99
Profil *
Ahoj, v url http://localhost/abc potrebuju abc dostat do parametru "i" a to potom vypsat pres $_GET['i']:

Toto nefunguje:
RewriteEngine On
RewriteRule ^(.*)$ test.php?i=$1 [L]

Misto "abc" se vypise string 'test.php' (length=8):
<?php
var_dump($_GET['i']); //vypisuje test.php! misto abc
?>

Diky
Kubo2
Profil
ja99:
Nemáš v tom nijakú chybu, tak mi zostáva iba spýtať sa ťa:
Nezadávaš náhodou http://localhost/test.php ?
To by totiž vysvetľovalo daný výpis, pretože to prepíše aj existujúci súbor, ak sa nemýlim.
ja99
Profil *
Vsechno je presne tak jak sem napsal.

.httaccess i test.php je v document rootu

Tohle je výpis kdyz zadam http://localhost/testcadf:

'REDIRECT_QUERY_STRING' => string 'i=testcadf' (length=10)
'REDIRECT_URL' => string '/testcadf' (length=9)
'GATEWAY_INTERFACE' => string 'CGI/1.1' (length=7)
'SERVER_PROTOCOL' => string 'HTTP/1.1' (length=8)
'REQUEST_METHOD' => string 'GET' (length=3)
'QUERY_STRING' => string 'i=test.php' (length=10)
'REQUEST_URI' => string '/testcadf' (length=9)
'SCRIPT_NAME' => string '/test.php' (length=9)
'PHP_SELF' => string '/test.php' (length=9)


ja99:
vyřešeno (ráno moudřejší večera :-)

RewriteRule ^([a-zA-Z-]+)$ test.php?i=$1 [QSA,L]
Kajman
Profil
Postupně došlo ke dvěma přepisům:
v první fázi z test na test.php?i=test
ve druhé z test.php?i=test test.php?i=test.php

Flag [L] značí poslední pravidlo při použití, ale ve chvíli kdy se změní vnitřní adresa (test na test.php) se pravidla prochází znovu s novou cestou.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0