LINUX.ORG.RU
решено ФорумAdmin

Nginx «особый» реврайт

 


2

2

Заказчик просит сделать так, чтобы с example.com/1.php ему подгружало example.com/2.php, но при этом чтобы ссылка в браузере не менялась на 2.php. То есть это не простой редирект/реврайт.

В доках nginx копаюсь, но может кто наведёт на путь истинный?

Ответ на: комментарий от FluffyPillow

А не должна. Может дело в твоем 2.php?

btw при proxy_pass надо не забыть добавить всяких add_header иначе, ты, например, не будешь знать remote_ip

pawnhearts ★★★★★ ()
Последнее исправление: pawnhearts (всего исправлений: 1)
Ответ на: комментарий от FluffyPillow

Нет:

server {
  listen 80;
  rewrite ^/foo$ /bar last;

  location /bar {
    return 200 "bar";
  }
}
$ curl -v http://localhost/foo
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 80 (#0)
> GET /foo HTTP/1.1
> Host: localhost
> User-Agent: curl/7.55.1
> Accept: */*
> 
< HTTP/1.1 200 OK
< Server: nginx/1.12.1
< Date: Sun, 07 Jan 2018 17:25:36 GMT
< Content-Type: application/octet-stream
< Content-Length: 3
< Connection: keep-alive
< 
* Connection #0 to host localhost left intact
bar

deadNightTiger ★★★★ ()
Ответ на: комментарий от FluffyPillow

а ты уверен что у тебя example.com/func а не example.com/test/func например ?

В это случае убери ^. А вообще читай маны там все написано

Jopich1 ()
Ответ на: комментарий от FluffyPillow

Там есть всё нужное. В частности там написано как делать рерайты с переадрисацией клиента и без (и что второе это поведение по-умолчанию, а не «особый» случай). Или тебе нужны готовые примеры на все случаи жизни?

MrClon ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.