
Ich habe Probleme damit, dass IIS und Apache auf demselben Server laufen. Insbesondere ersetzen alle Weiterleitungen, die Apache vornimmt, die Website-Domäne nicht durch die Zieldomäne. Hier ein Beispiel: Versuch einer Weiterleitung zu https://s3.amazonaws.com/company-documentation/Help/Product/index.html leitet stattdessen weiter zu https://website.company.com/company-documentation/Help/Product/index.html
Ich habe es derzeit so eingerichtet, dass IIS den gesamten Datenverkehr an Apache umleitet und die URL neu schreibt, um die nicht standardmäßige Portnummer zu verbergen. Im Folgenden sind die von mir eingerichteten IIS-Umschreibregeln und die Apache-htaccess-Umleitungen aufgeführt.
Hier ist eine Umleitungsregel für den htaccess-Stammordner in Apache:
# Turn mod_rewrite on
RewriteEngine On
RewriteRule "^Documentation/Product/(.*)$" "https://s3.amazonaws.com/company-documentation/Help/Product/$1" [L,NC]
Dies ist die IIS-Web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://website.company.com:8081/{R:1}" />
<serverVariables>
<set name="HTTP_ACCEPT_ENCODING" value="" />
</serverVariables>
</rule>
</rules>
<outboundRules>
<rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1">
<match filterByTags="A, Form, Img" pattern="^http(s)?://website.company.com:8081/(.*)" />
<action type="Rewrite" value="http{R:1}://website.company.com/{R:2}" />
</rule>
<preConditions>
<preCondition name="ResponseIsHtml1">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>
Das Umschreiben von Apache htaccess funktioniert auf dem aktuellen Produktionsserver, auf dem nur Apache als Webserver installiert ist, einwandfrei. Der neue Server muss sowohl IIS als auch Apache auf demselben Server haben, um sowohl das CRM als auch die Website zu bedienen. Irgendwelche Vorschläge, wie das funktionieren könnte?
BEARBEITEN: Ich bin nicht sicher, ob die Umleitung des Apache-Servers zu IIS für CRM-Anfragen funktioniert, da das auf dem Server installierte ADFS die Ports 80 und 443 verwendet, die verwendet werden müssten, um Apache zum Standardanforderungshandler für HTTP- und HTTPS-Anfragen zu machen.
Antwort1
Die Lösung besteht darin, in die ARR-Proxy-Einstellungen zu gehen und „Reverse Rewrite Host in Response Headers“ zu deaktivieren. Quelle:https://forums.iis.net/t/1176725.aspx