2011-08-29 16 views
13

Mam problem z przepisaniem adresu URL. Chcę to:RewriteCond dla adresu URL z parametrami

http://www.foo.com/test.php?u=s1&id=12345&img=12 

do

http://app.foo.com/12345-s1-12.test 

Pierwszy parametr u jest ciągiem znaków, a img id Parametry są liczbami całkowitymi.

zacząłem coś takiego:

RewriteCond %{REQUEST_URI} ^/test.php?u=(.*)&id=(.*)&img=(.*)/ [NC] 
RewriteRule (.*) http://app.foo.com/%2-%1-%3.test [QSA,R=301,L] 

Thanks :)

EDIT:

Nadal nie działa, ale jestem blisko!

RewriteCond %{REQUEST_URI} ^/test.php [NC] 
RewriteCond %{QUERY_STRING} ^u=(.*)&id=(.*)&img=(.*) 
RewriteRule (.*) http://app.foo.com/%2-%1-%3.test [QSA,R=301,L] 

Teraz to daje mi ten link:

http://app.foo.com/12345-s1-12.test?u=s1&id=12345&img=12 

Zamiast!

http://app.foo.com/12345-s1-12.test 

:(

Odpowiedz

26

Solved

RewriteCond %{REQUEST_URI} ^/test.php [NC] 
RewriteCond %{QUERY_STRING} ^u=(.*)&id=(.*)&img=(.*) 
RewriteRule (.*) http://app.foo.com/%2-%1-%3.test? [R=301,L] 

Umieszczenie ? na końcu RewriteRule usuwa poprzednie informacje o ciągu zapytania.

-1

To działa idealnie! Użyłem tego - ale zastanawiam się, dlaczego docelowy adres URL pokazuje "% 3f" na końcu.

Używam:

RewriteCond %{REQUEST_URI} ^/ie/xx/yy.php [NC] 
    RewriteCond %{QUERY_STRING} ^rubric=(.*)&nr=(.*) 
    RewriteRule (.*) https://www.newdom.com/xx/yy.php?rubric=%1&nr=%2 [R=301,L] 

Dlaczego% 3f na końcu?

Powiązane problemy