您的位置:首页 > 其它

IIS Express web.config 设置(〇)

2016-04-29 09:24 295 查看
被 IIS Express 指向的站点目录下大多有个web.config文件用于该网站单独设置。

0.常见结构

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

</system.webServer>
</configuration>

首行是XML的标识,因为使用的XML,configuration包裹着的是设置。以下出现设置的XML时都会包括父级标签,这样便于知道这个设置要放在哪里。

1.security标签

这个标签涉及一些安全问题相关的设置。例如:

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

在单入口的URL路由中,URL如果包含加号(+)这种符号时,默认IIS Express是不会交给站点程序处理的,这时会给出一个错误界面。但是我们往往希望给出的错误界面统一,所以修改这个设置可以让这种符号通过,再有站点程序做出处理给出页面。requestFiltering里设置allowDoubleEscaping为True就是允许这种“双转义字符”通过。

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。

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标签就是把这种文件名加进默认列表中。

4.handlers标签

在该标签下添加子元素add来添加处理器(handler),这里以启用PHP的fastCgi为例:

</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里设置会比较好。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: