У меня есть FTP-доступ к моему веб-сайту ASP.NET (IIS 7), и я маршрутизирую поддомены с помощью Web.config в корневой папке Интернета. Она выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="route www and emtpy requests" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^(www.)?example.com" />
<add input="{PATH_INFO}" pattern="^/www/" negate="true" />
</conditions>
<action type="Rewrite" url="\www\{R:0}" />
</rule>
<rule name="route to blog" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^blog.example.com$" />
<add input="{PATH_INFO}" pattern="^/blog/" negate="true" />
</conditions>
<action type="Rewrite" url="\blog\{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Как видите, в моем корневом каталоге есть две папки: "www" и "блог". Когда я сейчас войду "blog.example.com" все работает нормально, но когда я нажимаю ссылку, я перехожу к "blog.example.com/blog"
Что я могу сделать, чтобы предотвратить такое поведение?
Это потому, что вы перенаправляете на blog.foo.com/blog, вам нужно перенаправить на полное доменное имя (вместо этого foo.con / blog.