评论

收藏

[IIS] windows server 2008R2系统 IIS7.5配置伪静态的方法(urlrewrite)

web服务器 web服务器 发布于:2021-10-01 11:34 | 阅读数:322 | 评论:0

从网上找了一下,原来微软IIS官方网站给IIS7及以后续版本提供了个URL重写组件。
下载地址:https://www.iis.net/download/URLRewrite或者https://www.uoften.com/softs/479310.html
首先,打开上面网址,到IIS官方网站下载模块。
根据需要,点击右侧的下载链接(操作系统是64位的,就下载x64版本;32位的系统,就下载x86版本)

IIS版本:IIS 7.5

URL Rewrite组件:IIS URL Rewrite Module(https://www.iis.net/downloads/microsoft/url-rewrite)

根据需要,点击右侧的下载链接(操作系统是64位的,就下载x64版本;32位的系统,就下载x86版本)
注意的是,目前安装的版本都是英文的了。
DSC0000.jpg

下载完成之后,安装重写模块。
下载的是本地msi包(rewrite_amd64.msi或者rewrite_x86.msi),双击安装即可(安装之前最好先停止IIS服务,如果IIS服务没停的话,安装完成后会要求重启系统。)
DSC0001.png

安装完成后,打开“Internet 信息服务(IIS)管理器”,就可以看见模块中多了一个Url Rewrite 模块。
DSC0002.png

进入需要设置的站点,双击 Url Rewrite 图标,进入设置界面。
DSC0003.png

点击Add Rule(s)输入Rewrite重写规则。
确认无误后,点击右栏的“应用”按钮,大功告成

当然你也可以从原来配置的伪静态文件导入:支持isapi的httpd.ini或.htaccess
案例:
很友好的URL地址,使访问的人很容易记住。要求你的用户记住“ https://www.uoften.com/article.aspx?id=342&;title=URL-Rewrite-Walkthrough” 这样的网址并不是件很美妙的事。如果给用户提供如下URL地址:https://www.pipima.com/article/342/URL-Rewrite-Walkthrough,就能更好引起共鸣和更容易被记住。
通过IIS URL Rewrite 模块( URL Rewrite module)你可以很方便建立这一逻辑而不需要修改正在使用的Rewrite Maps代码.我将告诉你从IIS管理器里来实现。打开IIS管理器,选择“Default Web Site”,在“功能视图”单击“URL Rewrite”,然后在“操作”栏,单击“Add Rules…”,在“select a rule templates”对话框选择“Blank rule”,将打开“edit rule”属性页,按如下步骤定义实际的重写规则(rewrite rule):
1、规则名称。
2、匹配URL字符串所使用的模式。
3、设置条件选项。
4、模式匹配和所有条件检查成功后执行的操作。
为了实现下面的例子,“edit rule”属性页如下图所示:
DSC0004.jpg

规则的名称应该是唯一(不重复)的,匹配字符串“^article/([0-9]+)/([_0-9a-z-]+)”是正则表达式,将匹配满足一下标准的任何URL字符串:
1、开始于“article/”字符序列。
2、在“/”后包含一个或多个数字字符。
3、在第二个“/”后包含一个或多个字母或“_”或“-”。
因为我们创建一个支持重写URL的规则,因此规则类型是“Rewrite“。重写字符串(Rewrite UR)“article.aspx?id={R:1}&title={R:2}”指定一个新值用于输入被重写的URL。参数我们使用“ {R:1} ”和“{R:2}”,他们将返回一组通过规则匹配定义的引用(reference)。关于返回引用( back reference)你可以参考:URL Rewrite Module Configuration Reference,有关创建重写规则的更多内容见:Creating rewrite rules for the URL Rewrite Module
一个很重要的就是URL Rewrite模块是需要被安装才可以工作,你可以如下两个版本:
x86版本:https://www.iis.net/downloads/default.aspx?tabid=34&;g=6&i=1691
x64版本:https://www.iis.net/downloads/default.aspx?tabid=34&;g=6&i=1692
该模块(目前)只支持IIS7.0,你应该运行IIS7.0有利于使用它。如果你的项目是使用Visual Studio for Web Developers开发,那么项目应该配置成在iis7.0下运行,而不是其他的web服务器。
有关URL Rewrite模块的详细内容见:https://learn.iis.net/page.aspx/460/using-url-rewrite-module/
注意:
第一种方法是在web.config中进行编码
web.config位于网站项目的物理路径,如果没有自己生成一个就好。
DSC0005.jpg
//设置的规则就卸载这里哟

DSC0006.jpg
..................

DSC0007.jpg
//match 和 action中的url 均为正则表达式

DSC0008.jpg
以上就是自己填写在web_config内容的规范了。

第二种方法
查看网站的功能模块,会发现IIS中有个【URL重写】
DSC0009.jpg

DSC00010.jpg

现在都是英文版的了,以后微软可能会出中文版的,但很多人反映不是很好用。个人也更新isapi_rewrite也挺好用的。
点击进入之后,最右侧一列发现【导入规则】
[转载]windows server 2008R2系统  IIS7.5配置伪静态页面
进入就可以引入规则文件了。不过要注意的是规则文件的格式为.htaccess。其中的映射规则还是要自己写的。样式如下:
RewriteEngine  on
# URL规则(#为注释符号哟)
RewriteRule  ^index.html$                       index.php [L]
RewriteRule ^product-cat-([0-9]+)-([0-9]+).html$    product.php?mod=list&cid=$1&page=$2 [L]
#意思是前面的html会映射到后面的文件中。RewriterRule的两个链接(勉强称之为链接)都是正则表达式的写法。如果不了解正则表达式,就自己看看吧,嘿嘿
导入成功后,右侧上方的【应用】要记得点一下哈,这样代码就自动声称到web.config中去了
最后一步,无论手写config还是通过htaccess,都要将网站站点重启一下。这样就可以啦~~

关注下面的标签,发现更多相似文章