从URL中删除Host并将查询字符串作为主机

时间:2018-05-09 23:12:39

标签: regex apache mod-rewrite

我正在尝试使用重定向进行反向代理。我试图从URL中删除主机并从查询字符串构造url。像

http://www.examplehost.com/newexample.com:8080/ - > http://www.newexample.com:8080/

发送到网址的查询字符串是动态的。

我做过这样的事情: RewriteCond %{HTTP_HOST} ^www\.examplehost.com/ [NC] RewriteRule ^(.*)$ http://$1 [NC,QSA]

但它正在生成http://www./newexample.com:8080/,这会引发错误。

如何将查询字符串转换为新网址。

2 个答案:

答案 0 :(得分:0)

查找正则表达式:

let foo = function() {
   return {
     a: 1,
     b: true,
     c: 'bar'
   }
};

type ComplexObj = ReturnType<typeof foo>;  // {a: number, b: boolean, c: string}

并替换为:

allocator_traits

Demo

^http:\/\/www\.examplehost\.com\/(.*)$

答案 1 :(得分:0)

你可以这样做:

http\S*\/(.*\/)

并替换为http://www.$1。正则表达式将捕获URL的最后部分(在最后两个斜杠之间)。这将匹配并替换不定长度和域的URL,例如:

http://www.examplehost.com/newexample.com:8080/
https://somedomain.edu/moretext/finaltext.com:80/

将成为:

http://www.newexample.com:8080/
http://www.finaltext.com:80/