2013-03-10 15 views
18

Chcę użyć funkcji przepisywania w moim serwerze nginx.nginx przepisać BEZ adresu zmiany

Kiedy próbuję "http://www.example.com/1234", chcę przepisać "http://www.example.com/v.php?id=1234" i chcę uzyskać "http://www.example.com/1234" w przeglądarce.

Oto nginx.conf złożyć

... 
    location ~ /[0-9]+ { 
     rewrite "/([0-9]+)" http://www.example.com/v.php?id=$1 break; 
    } 
... 

Kiedy próbuję "http://www.example.com/1234"

chcę ...

url bar in browser : http://www.example.com/1234 
real url : http://www.example.com/v.php?id=1234 

ale jestem w tarapatach ...

url bar in browser : http://www.example.com/v.php?id=1234 
real url : http://www.example.com/v.php?id=1234 

Odpowiedz

28

Numer referencyjny: http://wiki.nginx.org/HttpRewriteModule#rewrite

Jeśli ciąg zastępujący zaczyna się od http: //, klient zostanie przekierowany, a wszelkie dalsze> dyrektywy dotyczące przepisywania zostaną zakończone.

Więc usunąć http: // część i to powinno działać:

location ~ /[0-9]+ { 
     rewrite "/([0-9]+)" /v.php?id=$1 break; 
} 
Powiązane problemy