windows server 2008R2系统 IIS7.5配置伪静态的方法(urlrewrite)
web IIS 2018-10-12 2644 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

6280127 2594 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)
从网上找了一下,原来微软IIS官方网站给IIS7及以后续版本提供了个URL重写组件。 
下载地址:http://www.iis.net/download/URLRewrite或者//www.jb51.net/softs/479310.html 
首先,打开上面网址,到IIS官方网站下载模块。 
根据需要,点击右侧的下载链接(操作系统是64位的,就下载x64版本;32位的系统,就下载x86版本)
IIS版本:IIS 7.5 
URL Rewrite组件:IIS URL Rewrite Module(http://www.iis.net/downloads/microsoft/url-rewrite)

根据需要,点击右侧的下载链接(操作系统是64位的,就下载x64版本;32位的系统,就下载x86版本)

下载完成之后,安装重写模块。
下载的是本地msi包(rewrite_amd64.msi或者rewrite_x86.msi),双击安装即可(安装之前最好先停止IIS服务,如果IIS服务没停的话,安装完成后会要求重启系统。)
(怎样停止iis服务,请参考http://taotaoit.com/article/details/414.html

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

from clipboard

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

点击Add Rule(s)输入Rewrite重写规则。 
确认无误后,点击右栏的“应用”按钮,大功告成
当然你也可以从原来配置的伪静态文件导入:支持isapi的httpd.ini或.htaccess
 
案例: 
很友好的URL地址,使访问的人很容易记住。要求你的用户记住“ //www.jb51.net/article.aspx?id=342&;title=URL-Rewrite-Walkthrough” 这样的网址并不是件很美妙的事。如果给用户提供如下URL地址:http://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”属性页如下图所示:
from clipboard

规则的名称应该是唯一(不重复)的,匹配字符串“^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版本:http://www.iis.net/downloads/default.aspx?tabid=34&;g=6&i=1691 
x64版本:http://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模块的详细内容见:http://learn.iis.net/page.aspx/460/using-url-rewrite-module/
 
注意:
 
第一种方法是在web.config中进行编码
 web.config位于网站项目的物理路径,如果没有自己生成一个就好。
from clipboard

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

点击进入之后,最右侧一列发现【导入规则】
 [转载]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,都要将网站站点重启一下。这样就可以啦~~


20181023更新


系统放在windows2008+iis7.5上面,不能使用.htaccess

根目录配置文件web.config内容

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpErrors errorMode="Detailed" />
        <rewrite>
            <rules>
<rule name="已导入的规则 2" stopProcessing="true">
                    <match url="^(manage|school|appng)\/(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                        <add input="{R:1}" pattern="^(index\.php)" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="{R:1}/index.php/{R:2}" />
                </rule>                
<rule name="已导入的规则 1" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                        <add input="{R:1}" pattern="^(index\.php)" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
实现目的


http://www.abc.com/school/index.php/home/login变成
http://www.abc.com/school/home/login


http://www.abc.com/index.php/home/about变成
http://www.abc.com/home/about
可以隐藏根目录的index.php,也可以隐藏二级目录下面的index.php

版权声明:本篇文章来源于网络。 来源链接

相关推荐
iis提示“另一个程序正在使用此文件,进程无法访问。(异常来自HRESULT:0x80070020) ”解决办法
IIS | 2017-11-20 4284
Flash Media Server(FMS)占用80端口,IIS启动不了? 今天打开本地iis的时候,iis启动不了了,点启动就提示 经网上查找貌似是80端口被占用了。下面就是找出那个文件占用了80端口 1、 打开CMD DOS模式窗口 2、 在窗口中输入 netstat -obna 之后回车,在列出来的...
iis7怎么没有fastcgimodule
IIS | 2017-06-19 3561
在Windows7的控制面板-程序中“打开/关闭Windows功能”,在里面打开IIS,不要忘了打开IIS里的CGI(这个默认是不选的),如下图:
评论:0条
评论加载中...
发表评论
前一篇: