【问题标题】:Apache redirect after a rewrite重写后的 Apache 重定向
【发布时间】:2013-12-09 19:43:42
【问题描述】:

我正试图弄清楚如何正确地做到这一点。我正在托管一个曾经在同一台服务器上拥有网站的域,但是该网站现在已移动到另一台机器上,但他们希望将域托管在我们的 DNS 上。我现在没有更改 DNS 记录,而是试图弄清楚如何进行代理重定向,但我遇到了一些麻烦。

现在,我正在使用 RewriteEngine 来重写 URL,如下所示:

RewriteEngine on
RewriteCond %{HTTP_HOST}        !^www\.domain\.org [NC]
RewriteRule ^/(.*)              http://www.domain.org/$1 [L,R]

如果有人仅通过http://domain.org 查找网站,它将被重写为http://www.domain.com - 可以正常工作。

现在我需要将其重定向到带有用户名的 IP 地址:

http://111.222.333.444/~user

而不是简单地将其重定向到该地址,我想做一个代理,该域仍将在浏览器的地址栏中可见,同时保持上述规则。

有人建议吗?

【问题讨论】:

    标签: apache http mod-rewrite


    【解决方案1】:

    确保 mod_proxy 已启用并执行以下操作:

    <VirtualHost *:80>
        ServerName www.domain.com
        ProxyPass / http://111.222.333.444/~user
    </VirtualHost>
    

    【讨论】:

    • 如何与前面提到的我想保留的规则一起工作?
    • 您可以使用“ServerAlias www.domain.org”或设置另一个 vHost 重定向到 .com 站点。
    • 我刚刚注意到我上面的错误......我很抱歉。重定向是从 domain.org 到 www.domain.org - NOT .com。这样,当您在浏览器中键入 domain.org 时,服务器会将您重定向到 www.domain.org ... 所以请忽略原始消息中我的规则中的 .com,它应该是 .org。对不起。
    • 没有必要为此使用 mod_rewrite。只需设置另一个从 d.org 重定向到 www.d.org 的虚拟主机。见:gist.github.com/anonymous/7889771
    猜你喜欢
    • 2014-11-27
    • 2014-11-03
    • 2017-11-21
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多