使用 apache vhost 配置重定向到新域

Posted

技术标签:

【中文标题】使用 apache vhost 配置重定向到新域【英文标题】:Redirect to a new domain using apache vhost configuration 【发布时间】:2018-05-08 14:39:21 【问题描述】:

我有一个 apache vhost 配置如下。我想要来自

的所有请求

somedomain.com/loadproduct?product=dell-inspiron-15

被重定向到

someotherdomain.com/dell-inspiron-15

我可以从虚拟主机配置中做到这一点吗?请注意,我在 url 中有查询参数。

Listen 12567
NameVirtualHost *:12567

<VirtualHost *:12567>
    ServerName somedomain.com
    ProxyPreserveHost On

    RewriteEngine On
    RewriteRule ??
</VirtualHost>

非常感谢这里的任何线索。

【问题讨论】:

【参考方案1】:

您可以使用(而不是RewriteRule ??):

RewriteCond %QUERY_STRING (?:^|&)product=([^&]+) [NC]
RewriteRule ^/?loadproduct$ http://someotherdomain.com/%1? [R=301,L,NC]

【讨论】:

我没有明白“从实际 URL 到漂亮 URL 的外部重定向”和“从漂亮 URL 到实际 URL 的内部转发”是什么意思? 但是为什么需要重写“someotherdomain.com/dell-inspiron-15 to somedomain.com/loadproduct?product=dell-inspiron-15”? 我的 someotherdomain 足以响应它收到的查询。我们可以聊天吗? 很抱歉一次又一次地打扰您。这工作正常,但我不想重定向到所有产品的新 URL。我有一个产品白名单,例如 1. dell-inspiron-15 2. dell-inspiron-16 3. dell-inspiron-17 ... 我想针对这些产品重定向到新 URL,对于我想使用的其他产品当前路径本身。例如: somedomain.com/loadproduct?product=dell-inspiron-15 -> 重定向到 someotherdomain.com/dell-inspiron-15 somedomain.com/loadproduct?product=hp-15-abcd -> 不重定向 我该怎么做有选择地做这个重定向?感谢这里的线索。 记录了另一个问题***.com/questions/47547418/… 的要求。请检查您是否有空闲时间。谢谢!

以上是关于使用 apache vhost 配置重定向到新域的主要内容,如果未能解决你的问题,请参考以下文章

使用 apache vhost 配置有选择地重定向到新域

apache_conf 从旧域重定向到新域

将所有请求从旧域重定向到新域

301 使用 .htaccess 从旧域重定向到新域

在 .htaccess 中使用 HTTPS 将旧域重定向到新域

htaccess 域重定向到新域