1

私は、一部のリンクが HTML で完全修飾されている (対相対) サイトに取り組んでいます。そのため、ローカル コピーからライブ サイトにリダイレクトされ続けます。たとえば、オンラインでhttp://example.dev/リンクをクリックする <a href="http://www.example.com/register">register</a>と、ライブ サイトに移動します。

hostsライブ サイトにアクセスしようとするといつでも開発サイトにリダイレクトされるように、ファイルに Apache ルールや何かできることはありますか?

127.0.0.1 www.example.com私は自分のhostsファイルとこれを私の v-hosts conf ファイルに追加しようとしました:

<VirtualHost *:80 *443>
  ServerName www.example.com
  RedirectMatch permanent ^/(.*) http://example.dev/$1
</VirtualHost>

私の目標は、この問題を修正するためにソース コード/マークアップを調整する必要がないようにすることです。

4

1 に答える 1

1

Apache はmod_rewrite着信 URL にのみ使用します。アウトバウンド URL には別の手法を使用する必要があります。以下にいくつかのオプションを示します。

  • mod_substituteを試して、ページ内の URL を見つけて書き換えます。
  • mod_proxy_htmlは動作すると思いますが、サード パーティによって開発されたものであり、ドキュメントがすべて終わっています。
  • 非 Apache の方法: 本番環境か開発環境かを示すフラグに基づいて、サーバー側のコードを使用してリンクを生成します。

mod_substitute一番簡単だろうと思います。次のようになります。

<Location />
    AddOutputFilterByType SUBSTITUTE text/html
    Substitute s/www.example.com/example.dev/n
</Location>
于 2013-06-11T13:12:26.297 に答える