【问题标题】:.htaccess rewrite proxy with query params.htaccess 使用查询参数重写代理
【发布时间】:2013-12-26 20:16:49
【问题描述】:

一些正则表达式/htaccess 向导可以提供帮助吗?我正在寻找将

  • 支持子域
  • 通过代理(不是 301)进行操作
  • 传递任意数量的查询参数(如果存在)

这样,这就是那个的代理:

  • www.domain.com -> www.otherdomain.com
  • dev.domain.com -> dev.otherdomain.com
  • www.domain.com?thing=123 -> www.otherdomain.com?thing=123
  • dev.domain.com?thing=123&otherthing=abc -> dev.otherdomain.com?thing=123&otherthing=abc

拥抱

【问题讨论】:

  • 您是否在www.domain.comdev.domain.com 上启用了mod_proxy
  • 我们还有其他代理规则在起作用。域的 DNS 解析为其他域的 IP。

标签: regex apache .htaccess mod-rewrite


【解决方案1】:

假设在 www.domain.comdev.domain.com 上启用了 mod_proxy,并且两个域都使用相同的 DOCUMENT_ROOT

将此代码放入您的DOCUMENT_ROOT/.htaccess 文件中:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteRule ^ http://otherdomain.com%{REQUEST_URI} [P,L,NE]

RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com$ [NC]
RewriteRule ^ http://%1.otherdomain.com%{REQUEST_URI} [P,L,NE]

QUERY_STRING自动转移到新目的地。

【讨论】:

  • 哦,看起来很有希望。在第一个 . ?
  • 我有点奇怪。仍在调查(获取 502 bad gateway)。
  • 当我在这个测试器上使用这个规则(将 /subfolder/ 添加到其他域)时:htaccess.madewithlove.be 它似乎有效,但查询参数似乎没有通过......
  • 该站点对于测试 mod_rewrite 规则不是很可靠。我再次在我的主机上测试了相同的规则,它们工作正常并且也传递了查询字符串。
  • 标记为答案,但是,我们还有其他一些事情在阻止我验证此实现。
猜你喜欢
  • 1970-01-01
  • 2016-02-27
  • 2023-02-14
  • 2012-03-18
  • 1970-01-01
  • 2016-08-16
  • 2021-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多