1

我正在一个网站上工作,其中一些链接在 HTML 中是完全限定的(相对于相对的)。因此,我不断从本地副本重定向到实时站点。例如,我打开http://example.dev/并单击一个链接 <a href="http://www.example.com/register">register</a>,因此我被发送到实时站点。

是否有 Apache 规则和/或我可以在我的hosts文件中执行的操作,以便无论何时我尝试访问实时站点,它都会将我重定向到开发站点?

我尝试将其添加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

Apachemod_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 回答