2013-03-10 4 views
18

Я хочу использовать функцию перезаписи на моем сервере nginx.nginx переписать БЕЗ изменения URL

Когда я пытаюсь «http://www.example.com/1234», я хочу переписать «http://www.example.com/v.php?id=1234» и хочу получить «http://www.example.com/1234» в браузере.

Вот nginx.conf файл

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

При попытке "http://www.example.com/1234"

Я хочу ...

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

, но я в беде ...

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

ответ

28

Справка: http://wiki.nginx.org/HttpRewriteModule#rewrite

Если строка замены начинается с http: //, то клиент будет перенаправлен, а любые последующие директивы перезаписи будут завершены.

Так удалить HTTP: // часть, и она должна работать:

location ~ /[0-9]+ { 
     rewrite "/([0-9]+)" /v.php?id=$1 break; 
} 
Смежные вопросы