Windows server 2008 IIS7.5 URLRewrite 伪静态设置
第一部: 从如下地址中下载URLRewriter组件组件:
下载地址:
第二部:在网站项目中添加URLRewriter程序集的引用。
第三部:配置webconfig文件:
1。在<configuration>与</configSections>节点中间加入如下配置:
<section name=”RewriterConfig” type=”URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter” />
2。 在<httpHandlers>与</httpHandlers>
之间加入
3。在<httpModules>与</httpModules>加入
<add type=”URLRewriter.ModuleRewriter, URLRewriter” name=”ModuleRewriter”/>。
4。配置伪静态的语法:在<configuration>与</configuration>之间加入<RewriterConfig>
</RewriterConfig>节点。在<RewriterConfig>与</RewriterConfig>之间加入伪静态规则:
<Rules> <!–定义伪静态第一条规则开始–> <RewriterRule> <LookFor>~/xxxx/view(.[\d]*)\.html</LookFor> <SendTo>~/xxxx/view.aspx?id=$1</SendTo> </RewriterRule> <!–定义伪静态第一条规则结束–> <!–定义伪静态第二条规则开始–> <RewriterRule> <LookFor>~/yyyy/(.[\d]*)/view.html</LookFor> <SendTo>~/yyyy/view.aspx?id=$1</SendTo> </RewriterRule> <!–定义伪静态第三条规则结束 以此类推–> </Rules>
第四部:配置IIS7.5 或IIS7.0
1.新建一个应用程序池:名称:任意如:aspnet;选择net FrameWork版本(如果你的网站时候2.0的话就选择2.0,我的是4.0)在此我选择Net FramWork v 4.030319. 托管管道模式先暂时设置为集成模式。等下面的设置完成之后再将托管管道模式设置为经典模式。如果下面的设置完成之后不把应用程序设置为经典模式的话,伪静态的功能可以实现,但是页面的样式图片不能正常显示这是设置的关键。
2 新建一个网站 website ,将此站点的应用程序程序池设置为aspnet。
3 选中你的站点比如website ,并且切换到功能视图。双击【处理程序映射】在打开窗口右侧的操作栏目下做如下操作。
3.1,【添加脚本映射】-路径为:*.html.可执行文件为:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 注意:如果你的网站是2.0。可执行文件为:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
。名称:任意,比如:html.
3.2, 【添加通配符脚本映射】 请求路径为*。可执行文件为:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,名称任意,比如:aspnet.
3.3,【托管处理程序映射】(路径:* 可执行文件:System.Web.UI.PageHandlerFactory 名称 任意 比如Html-Integrate)
3.4, 双击website站点切换到站点功能视图。然后双击模块,打开窗口之后在右侧的操作栏目下面,单击【添加托管模块】-》名称:任意 如aspnet 类型:URLRewriter.ModuleRewriter 并且 把【仅针对向asp.net 应用程序或托管处理程序发出请求调用】前面的选项
勾上。(记住一定要勾上)。
3.5 ,最后一步:双击iis7.0或7.5的应用程序池。在应用程序池列表中找到【aspnet】应用程序池。双击打开之后。将aspnet应用程序池的【托管管道模式】设置为经典模式。
Web.config伪静态示例代码参考:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <directoryBrowse enabled="false" /> <rewrite> <rules> <rule name="301Redirect0" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAny"><!--匹配任意一项--> <add input="{HTTP_HOST}" pattern="^demo2\.php\.cn$" /> <add input="{HTTP_HOST}" pattern="^demo3\.php\.cn$" /> </conditions> <action type="Redirect" url="http://www.php.cn/{R:0}" redirectType="Permanent" /> </rule> <rule name="301Redirect1" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAll"><!--匹配全部,不以二者开头--> <add input="{HTTP_HOST}" pattern="^((?!open).*)$" /> <add input="{HTTP_HOST}" pattern="^((?!demo).*)$" /> </conditions> <action type="Redirect" url="http://m.php.cn/{R:0}" redirectType="Permanent" /> </rule> <rule name="mainrule" stopProcessing="true"> <match url="^([0-9]+)\.html$" /> <action type="Rewrite" url="detail.php?songid={R:1}" /> </rule> <rule name="s0_rule" stopProcessing="true"> <match url="^keyword/(.+)/$" /> <action type="Rewrite" url="search.php" /> </rule> <rule name="s1_rule_301" stopProcessing="true"> <match url="^keyword/.*[^/]$" /> <action type="Redirect" url="http://www.php.cn/keyword-{R:0}/" redirectType="Permanent" /> </rule> <rule name="sitemap_rule" stopProcessing="true"> <match url="^sitemap\.txt$" /> <action type="Rewrite" url="sitemap.php" /> </rule> </rules> </rewrite> </system.webServer> </configuration>