我有一個簡單的通配符路由規則,我想申請我的Azure Web應用程序。在Azure網絡應用中重寫URL
<rule name="MyRule">
<match url="*" />
<action type="Rewrite" url="/index.html" />
</rule>
我在這裏有任何選擇,因爲我不能RDP到機器和小提琴的IIS?這不是一個ASP.Net網站,它是一個簡單的SPA應用程序。
我有一個簡單的通配符路由規則,我想申請我的Azure Web應用程序。在Azure網絡應用中重寫URL
<rule name="MyRule">
<match url="*" />
<action type="Rewrite" url="/index.html" />
</rule>
我在這裏有任何選擇,因爲我不能RDP到機器和小提琴的IIS?這不是一個ASP.Net網站,它是一個簡單的SPA應用程序。
您需要在wwwroot文件夾中創建一個web.config文件,並在其中放置相關的配置項。
下面是一個web.config規則的例子,給你一個它應該看起來像什麼的概念。
下面的例子重定向默認的* .azurewebsites.net域自定義域(通過http://zainrizvi.io/2016/04/07/block-default-azure-websites-domain)
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect rquests to default azure websites domain" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="^yoursite\.azurewebsites\.net$" />
</conditions>
<action type="Redirect" url="http://www.yoursite.com/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
如果只是想所有的URL解析到這個服務器&網站重定向到index.html
你可以使用這個改寫部分:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="SPA">
<match url=".*" />
<action type="Rewrite" url="index.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
這是非常類似於你有什麼,除了一些小的語法修復,例如該模式應該是「。*」,而重寫URL目標只是「index.html」。 請注意,這意味着您網站的所有網址都將被重寫,即使是其他資源(如CSS和JS文件,圖片等)也是如此。因此,您最好從其他網域獲取資源。
如果你想要做的實際重寫(不重定向),不要忘了讓ARR與投入到站點文件夾包含以下內容applicationHost.xdt文件:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.webServer>
<proxy xdt:Transform="InsertIfMissing" enabled="true" preserveHostHeader="false" reverseRewriteHostInResponseHeaders="false" />
<rewrite>
<allowedServerVariables>
<add name="HTTP_ACCEPT_ENCODING" xdt:Transform="Insert" />
<add name="HTTP_X_ORIGINAL_HOST" xdt:Transform="Insert" />
</allowedServerVariables>
</rewrite>
</system.webServer>
</configuration>