欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

iis7 php伪静态如何设置

程序员文章站 2022-03-23 21:12:55
...

iis7 php伪静态设置的方法:首先下载IIS的URLRewrite;然后点击“Add Rules”并选择“Blank rule”;最后添加一个伪静态规则并确定保存即可。

iis7 php伪静态如何设置

推荐:《PHP视频教程

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

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

iis7 php伪静态如何设置

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

iis7 php伪静态如何设置

iis7 php伪静态如何设置

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

iis7 php伪静态如何设置

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

iis7 php伪静态如何设置

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

iis7 php伪静态如何设置

我们只需要填写三个部分

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

Pattern是匹配规则

Action Properties是真实的地址

iis7 php伪静态如何设置

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

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

iis7 php伪静态如何设置

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>

以上就是iis7 php伪静态如何设置的详细内容,更多请关注其它相关文章!

相关标签: iis7 php