2

この書き換えルールがあります...

すべての最初のリクエストを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

ワールドをWebに変更し、クエリ文字列を渡すだけです。

ヘルプ

4

3 に答える 3

5

これを行うために複雑な書き換えエンジンを使用する必要はありません。使用するだけRedirectです:

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

ディレクティブは、リダイレクトするものの後に続くRedirectすべてのものを自動的に保持します。

于 2009-08-28T01:33:04.110 に答える
1

「クエリ文字列の追加」フラグを使用するのを忘れました。[R=301,L,QSA]

于 2009-08-28T01:31:35.487 に答える
0

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;
}

参照:

于 2014-12-02T02:19:46.300 に答える