diff --git a/hwcconfig/application_host_config.go b/hwcconfig/application_host_config.go
index 869f8d04..3c2e5528 100644
--- a/hwcconfig/application_host_config.go
+++ b/hwcconfig/application_host_config.go
@@ -4,6 +4,7 @@ import (
"errors"
"fmt"
"os"
+ "path/filepath"
"strings"
"text/template"
)
@@ -62,6 +63,16 @@ func (c *HwcConfig) generateApplicationHostConfig() error {
return errors.New(fmt.Sprintf("Missing required DLLs:\n%s", strings.Join(missing, ",\n")))
}
+ rewrite := false
+ rewritePath := filepath.Join(os.Getenv("WINDIR"), "system32", "inetsrv", "rewrite.dll")
+ _, err := os.Stat(rewritePath)
+ if err == nil {
+ globalModules = append(globalModules, map[string]string{"Name": "RewriteModule", "Image": `%windir%\system32\inetsrv\rewrite.dll`})
+ rewrite = true
+ } else if !os.IsNotExist(err) {
+ return err
+ }
+
file, err := os.Create(c.ApplicationHostConfigPath)
if err != nil {
return err
@@ -71,11 +82,13 @@ func (c *HwcConfig) generateApplicationHostConfig() error {
type templateInput struct {
Config *HwcConfig
GlobalModules []map[string]string
+ Rewrite bool
}
t := templateInput{
Config: c,
GlobalModules: globalModules,
+ Rewrite: rewrite,
}
var tmpl = template.Must(template.New("applicationhost").Parse(applicationHostConfigTemplate))
@@ -151,14 +164,24 @@ const applicationHostConfigTemplate = `
+ {{if .Rewrite}}
+
+
+
+
+
+
+
+
+ {{end}}
-
-
+
+
@@ -874,6 +897,9 @@ const applicationHostConfigTemplate = `
+ {{if .Rewrite}}
+
+ {{end}}