2017-12-11 13 views
0

クライアントが同じサーバーのサブパスに対して異なるリダイレクトをどのように処理するかをテストするために、VirtualHost構成を作成しようとしています。また、将来的にはより多くのステータスコード(307,308など)を含めるのに十分な柔軟性を保ちます。複数のリダイレクトをテストするApache VirtualHosts

また、適用されるホスト名(リダイレクトはすべて同じホスト名になりますが、異なるポート/サブパス)に関係なく、この設定を再利用することが望ましいでしょう。だからApache Redirectsの指示はおそらくトリックをしません。

私の最初のアイデアは、2つの異なるインタフェースに聞いて別々の2つの別々の仮想ホスト私がテストしたい結果のHTTPコードに依存し、そのための RewriteRule Sを含む作成することでした

Listen 301 
Listen 302 

<VirtualHost *:301> 
    RewriteEngine On 
    RewriteRule ^(.*)$ $1 [R=301,L] 
</VirtualHost> 

<VirtualHost *:302> 
    RewriteEngine On 
    RewriteRule ^(.*)$ $1 [R=302,L] 
</VirtualHost> 

<VirtualHost *:80> 
    [...] 
</VirtualHost> 

問題は、そのポートがないです。 (つまり301,302)もリダイレクトされたURLの一部となり、有効なリダイレクトは行われません。私も、正規表現のグループの外にポートを残そうとしました:^(.*):302$運がありません。

このような何かが動作するはず
+0

あなたが達成しようとしているものを少しは不明です。あなたは、ブラウザのアドレスバーに入力された正確なURLと目的のURLの例を挙げることができます。 –

+0

@DusanBajic yup;申し訳ありませんが、私は最初に明確ではなかった場合。基本的には、http:// :301/whateverを301コードで 'http:// /whatever'にリダイレクトし、' http:// :302/whatever'を 'http:// /恒久的なリダイレクト(パスを保存してポート番号を削除する) – Alfageme

答えて

0

<VirtualHost *:81> 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ([^:]*):([0-9]*)$ 
RewriteRule^http://%1%{REQUEST_URI} [R=301,L,QSA] 
</VirtualHost> 
関連する問題