IIS Express web.config 設置(〇)

被 IIS Express 指向的站點目錄下大多有個web.config文件用於該網站單獨設置。php

0.常見結構

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
    
    </system.webServer>
</configuration>

首行是XML的標識,由於使用的XML,configuration包裹着的是設置。如下出現設置的XML時都會包括父級標籤,這樣便於知道這個設置要放在哪裏。web

1.security標籤

這個標籤涉及一些安全問題相關的設置。例如:正則表達式

<system.webServer>
    <security>
        <requestFiltering allowDoubleEscaping="True"/>
    </security>
</system.webServer>

在單入口的URL路由中,URL若是包含加號(+)這種符號時,默認IIS Express是不會交給站點程序處理的,這時會給出一個錯誤界面。可是咱們每每但願給出的錯誤界面統一,因此修改這個設置能夠讓這種符號經過,再有站點程序作出處理給出頁面。requestFiltering裏設置allowDoubleEscaping爲True就是容許這種「雙轉義字符」經過。api

2.rewrite標籤

一樣在system.webServer標籤下的rewrite標籤能夠起到重寫或重定向的功能。安全

<system.webServer>
    <rewrite>
        <rules>
            <rule name="Entry">
                <match url=".*" />
                <action type="Rewrite" url="/index.php" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

以上是一個設置單入口的例子,rewrite標籤下rules裏能夠放置多個rule(注意,上級是有s的)。rule有個name的屬性,命名了這個rule。match標籤的url是用於匹配URL的正則表達式。action標籤用於真正的路由功能,type裏Rewrite是重寫,Redirect是重定向,url是目的URL。app

3.defaultDocument標籤

該標籤能夠設置可被IIS Express默認爲首頁也就是URL只有域名的默認頁面文件。網站

<system.webServer>
    <defaultDocument>
        <files>
            <clear />
            <add value="index.php" />
        </files>
    </defaultDocument>
</system.webServer>

這個例子裏files標籤裏clear標籤清除了系統默認的設置。查看IIS Express 的applicationhost.config文件是能夠看到默認的。add標籤就是把這種文件名加進默認列表中。url

4.handlers標籤

在該標籤下添加子元素add來添加處理器(handler),這裏以啓用PHP的fastCgi爲例:spa

</system.webServer>
  <handlers accessPolicy="Read, Script">
    <add name="PHP7_0_FastCGI" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="D:\PHP-7.0.4\php-cgi.exe" resourceType="Either"/>
  </handlers>
</system.webServer>

applicationhost.configlocation標籤下設置的話全部項目(例如其餘.Net)都會打開PHPfastCgi,因此在web.config裏設置會比較好。code

相關文章
相關標籤/搜索