Переписать на новый домен? с URL-запросом? не работает. :( Помогите - PullRequest
2 голосов
/ 28 августа 2009

У меня есть это правило перезаписи ...

Перенаправить весь первоначальный запрос с world.example.com на web.example.com

RewriteCond %{HTTP_HOST} ^world\.example\.com$ [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{SERVER_PORT} !^80$
RewriteRule ^(.*)$ https://web.example.com$1 [R=301,L]

Который прекрасно работает. Но некоторые из моих приложений имеют ...

https://world.example.com/approvals/?id=b47b5256567

К сожалению, он неправильно перенаправляется на web.example.com. Вместо этого он просто переходит на web.example.com без параметров запроса.

Как я могу правильно перенаправить все запросы на web.example.com вместе с параметрами запроса?

В основном, что он должен делать ...

https://world.example.com/approvals/?id=b47b5256567
then
https://web.example.com/approvals/?id=b47b5256567

Просто изменив мир на веб и передав строку запроса.

Помощь

Ответы [ 3 ]

5 голосов
/ 28 августа 2009

Вам не нужно использовать сложный механизм переписывания, чтобы сделать это. Просто используйте Redirect:

<VirtualHost *>
    ServerName world.example.com
    Redirect permanent / https://web.example.com/
</VirtualHost>

Директива Redirect автоматически сохраняет все, что приходит после того, что вы перенаправляете.

1 голос
/ 28 августа 2009

Вы забыли использовать флаг «Добавление строки запроса» [R=301,L,<b>QSA</b>].

0 голосов
/ 02 декабря 2014

Мы можем сделать это и с Nginx.

server {
  listen 80:
  server_name: world.example.com    

  # URL redirect
  #rewrite ^ http://web.example.com$request_uri? permanent;
  rewrite ^ $scheme://web.example.com$request_uri permanent;
  #rewrite ^ $scheme://web.example.com permanent;
  #rewrite ^ $scheme://web.example.com;
}

Ссылка:

...