IIS7下的伪静态配置

    某个项目是PHP的,本地是Apache + PHP + MYSQL,服务器上的环境是IIS + PHP + MYSQL,开发完成准备部署到服务器上发现伪静态无法使用,原因是IIS不能解析.htaccess文件的内容。

    如要在IIS下启用伪静态 就需要下载IIS的 URLRewrite,地址是: http://www.iis.net/expand/URLRewrite 

    

 

    点击那个 or view additional downloads 转到,服务器是64位的,所以我下载x64版本的URL Rewrite

    

    双击下载完成的文件,下一步、下一步到安装完成 

 

    

   重新打开IIS发现多了个URL Rewrite项,打开全E文呀,不用怕其实配置还是很简单的……

 

如果我们要添加一个伪静态规则那么点击Add Rules,选择 Blank rule

 

我们只需要填写三个部分

name是这个规则的名称,可以随便取一个

Pattern是匹配规则

Action Properties是真实的地址

 

 

还有个Test pattern是用来测试匹配规则是否正确,例如我想测试一下^category/(.+)\.html$ 这个匹配设置,Test Results还很贴心的给出了匹配结果和我们需要的参数列表,其中 {R:1}就是我想要的参数,可以在 Rewrite URL中使用: cn/index.php?o={R:1}  是不是很简单~

顺便提一下:我在测试的时候不小心在正则表达式后面多加了个空格,结果总是匹配失败,所以大家要注意匹配规则的正则表达式前后不要带空格~

 

URLRewrite的规则和Apache中基本类似,例如在Apache中匹配规则是这样的:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^category/(.+)\.html$         cn/index.php?o=$1
    RewriteRule ^substance/(.+)_(.+)\.html$   cn/index.php?o=$1&id=$2
</IfModule>

那么在IIS中我们只需要将其中的 $1  $2替换成 {R:1}, {R:2} 就可以了

^category/(.+)\.html$                cn/index.php?o={R:1}
^substance/(.+)_(.+)\.html$     cn/index.php?o={R:1}&id={R:2}

 

熟悉了规则我们可以不用这个工具自己手工写URL匹配规则了,在网站根目录下修改web.config文件,system.webServer节点下增加rewrite项,修改内容为:

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="category">
                    <match url="^category/(.+)\.html$" />
                    <action type="Rewrite" url="cn/index.php?o={R:1}" />
                </rule>
                <rule name="substance">
                    <match url="^substance/(.+)_(.+)\.html$" />
                    <action type="Rewrite" url="cn/index.php?o={R:1}&amp;id={R:2}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
复制代码

 

posted on   relax  阅读(1712)  评论(1编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述

统计

点击右上角即可分享
微信分享提示