haproxy相当于.htaccess RewriteCond RewriteRule

时间:2016-03-26 06:18:52

标签: url-rewriting url-redirection haproxy

现在我有.htaccess

input {
  file {
    type => "IISLog"
    path => "C:\IISLogs/u_ex*.log"
    start_position => "beginning"
  }
}
filter {
  #ignore log comments
  if [message] =~ "^#" {
    drop {}
  }
  grok {
    match => ["message", "%{TIMESTAMP_ISO8601:log_timestamp} %{WORD:iisSite} %{IPORHOST:site} %{WORD:method} %{URIPATH:page} %{NOTSPACE:querystring} %{NUMBER:port} %{NOTSPACE:username} %{IPORHOST:clienthost} %{NOTSPACE:useragent} %{NOTSPACE:referer} %{NUMBER:response} %{NUMBER:subresponse} %{NUMBER:scstatus} %{NUMBER:bytes:int} %{NUMBER:timetaken:int}"]
  }
  #Set the Event Timesteamp from the log
  date {
    match => [ "log_timestamp", "YYYY-MM-dd HH:mm:ss" ]
    timezone => "Etc/UCT"
  }
  useragent {
    source=> "useragent"
    prefix=> "browser"
  }
  mutate {
    remove_field => [ "log_timestamp"]
  }
}
# output logs to console and to elasticsearch
output {
  stdout {}
  elasticsearch {
    hosts => ["127.0.0.1:9200"]
  }
  stdout {
    codec => rubydebug
  }
}

这很有效。如果我包含一个路径,那么它会将其转换为完整的URL。

前:

  • tiny.url / somefolder

然后转到

  • www.example.com/somefolder

我如何在haproxy中执行此操作。

我有: 重定向位置

{{1}}

这有效,但它不允许将完整路径转换为完整网址。我怎么做。我无法在haproxy帮助中找到任何帮助。我确定我不知道要输入什么来找到我需要的帮助。

1 个答案:

答案 0 :(得分:0)

我没有对此进行测试,但我认为您需要在prefix mode中使用redirect这样的内容:

redirect prefix http://www.example.com if { hdr(host) -i tiny.url }

希望有所帮助。