Problem z GET i mod rewrite

0

Witam serdecznie,
Mam taki plik .htaccess :

Options +FollowSymLinks
RewriteEngine On 
#RewriteBase /
RewriteCond %{HTTP_HOST} ^http://127.0.0.1/domena
RewriteRule ^(.*)$ http://127.0.0.1/domena/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule  ([^,]*),([^,]*).html index.php?gt_id=lista_uzytkownikow&dane=$2&modrw [NC]

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule  ([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*).html index.php?gt_id=$1&k1=$2&k2=$3&k3=$4&k4=$5&k5=$6&modrw [NC]

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule  ([^,]*),([^,]*),([^,]*),([^,]*),([^,]*).html index.php?gt_id=$1&k1=$2&k2=$3&k3=$4&k4=$5&modrw [NC]
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule  ([^,]*),([^,]*),([^,]*),([^,]*).html index.php?gt_id=$1&k1=$2&k2=$3&k3=$4&modrw [NC]
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule  ([^,]*),([^,]*),([^,]*).html index.php?gt_id=$1&k1=$2&k2=$3&modrw [NC]
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule  ([^,]*),([^,]*).html index.php?gt_id=$1&k1=$2&modrw [NC]
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule  ([^,]*).html index.php?gt_id=$1&modrw [NC]

Linki wyglądają tak: domena/admin_edycja.html - czyli oki.

Robię formularz:

<form action="lista_uzytkownikow.html" method="get">
<select name="dane">
<option value="1">op1</option>									<option value="2">op2</option>										<option value="3">op3</option>										<option value="4">op4</option>									</select>
<input type="submit">
</form>

po wysłaniu takiego formularza dostaję URL: lista_uzytkownikow.html?dane=1
zamiast: lista_uzytkownikow,1.html

PHP nie widzi zmiennej dane (próbuję wydrukować je za pomocą print_r($_GET)) :/

Wie ktoś może co zrobiłem nie tak? dlaczego w PHP nie widać tych zmiennych?

Z góry dzięki za pomoc,
Northwest

0

Dzieje się tak, bo już samo mod_rewrite parsuje query string (?...), a jako, że w żadnej regule go nie dołączasz, PHP w ogóle o nim nie wie.
W ogóle to, co zrobiłeś z tymi regułami to patologia. Dojdzie ci jeszcze jeden parametr i będziesz dokładał kolejne reguły? Zrób to po ludzku.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)\.html index.php?query=$1&%{QUERY_STRING} [L]
$params = array_merge(explode(',', $_GET['query']), $_GET);

http://revik.one.pl/private/rewrite/kontroler,akcja,parametr1,parametr2.html?parametr3=jakistam&parametr4=jeszczeinny

1 użytkowników online, w tym zalogowanych: 0, gości: 1