IIS的ISAPI服务器扩展URL REWRITE(URL重写)
- 格式:doc
- 大小:29.50 KB
- 文档页数:2
IIS URL Rewrite – rewriting non-www to wwwIf you’re using IIS 7.0 (or 7.5), URL Rewrite is a valuable tool, well worth installing and using.One common use of URL Rewrite is redirecting to . Many people are doing this for search engine optimization (SEO) so that search engines only see the one site, rather than two sites. The goal is to set a permanent 301 redirect.You can download URL Rewrite from/expand/URLRewrite. For this walkthrough and screenshots I’ll use URL Rewrite 2.0 RC1, but everything that I’ll cover also works for version 1.0 and 1.1.URL Rewrite works at the global level, or site level (or application level for that matter). Where you apply it is really up to how you manage your server. Either will work for a domain name redirect like this.You can choose to create the rules using IIS Manager, or using a text editor and updating web.config directly. I’ll show both, starting with IIS Manager.Let’s get started. First, open IIS Manager and double-click on the “URL Rewrite” icon.Next, click on “Add Rules…” from the Actions pane.Here you’ll have a choice from a few wizard options, and with URL Rewrite 2.0 you can also create outbound rules. Create a Blank rule (inbound rules).Give your rule a good friendly “Name”.I’ll call mine “Redirect to www”.In the “Using”dropdown box you can choose between Regular Expressions and Wildcards. Use wildcards if you aren’t familiar with regular expressions since they are much more intuitive. However, if you later need to create more complex rules, regex may be necessary.For this demo select Wildcards. However, I’ll include instructions for those wanting to use regular expressions.Enter *for the “Pattern”. That means anything qualifies. We’ll use a condition later instead of matching to the URL. (for Regular Expressions, use .*).Now expand the “Conditions” section and click “Add”.In the “Add Condition” dialogue enter the following:Condition input: {HTTP_HOST}Check if inputMatches the Patternstring:Pattern: (for regex, enter ^$)Ignore case: checkedClick OK.Finally, it’s time to set the Action.In the Action secti on make sure that the “Action Type” is set to Redirect.For the “Action Properties”, enter /{R:0}. The {R:0} retains the existing URL so if someone typed something like /aboutus it would retain the aboutus as it adds the www.Be sure that the “Append query string” remains checked so that the querystring part is also retained.Also, be sure that the “Redirect Type” is set to Permanent (301), which is what the search engines like. This tells the search engines to do a permanent redirect, use the new location and ignore the previous location.Finally, Apply the rule and test!Using a Text EditorYou can also create this rule manually by adding the following to your site’s web.config (or applicationHost.config if you set this at the server level).In the <system.webServer> section of your web.config, add the following:Wildcards<rewrite><rules><rule name="Redirect to www"patternSyntax="Wildcard"stopProcessing="true"><match url="*"/><conditions><add input="{HTTP_HOST}"pattern=""/></conditions><action type="Redirect"url="/{R:0}"/></rule></rules></rewrite>Save and you should be set.Or, if you prefer Regular Expressions, use this instead:Regular Expressions<rewrite><rules><rule name="Redirect to www"patternSyntax="ECMAScript"stopProcessing="true"><match url=".*"/><conditions><add input="{HTTP_HOST}"pattern="^$"/></conditions><action type="Redirect"url="/{R:0}"/></rule></rules></rewrite>This is just the start to great SEO, but it’s a common step and one that I hope you find helpful./owscott/archive/2009/11/27/iis-url-rewrite-rewriting-non-www-to-www.asp x/downloads/en/details.aspx?FamilyID=c8d3e2a4-5d14-434b-a067-39a6 fb8b9311/downloads/en/details.aspx?FamilyID=1b8c7bd8-8824-4408-b8fc-49dc 7f951a00。
UrlRewritingNet完美实现.NETURL重写URL重写好处有很多,如有利于SEO、便于记忆、隐藏真实路径使安全性提高、便于更新等等。
本文概要描述了各种URL重写的实现。
2.0 中实现URL重写有很多方法,如:Global.asax中捕获用Application_BeginRequest请求,再用HttpContext类的Rewrite方法或Server.Transfer方法实现重写;自己实现IHttpModule实现重写;还有的利用服务器的404错误引导到新的页面实现重写;最后就是用组件实现重写(基本原理大多也是实现IHttpModule、IHttpHandler接口处理请求)。
如果自己处理请求,实现起来麻烦,特别是在大项目中,做好使用组件实现。
网上有很多开源或免费的实现URL重写的组件,选择余地特别大。
当初我选择的标准是小巧、快速、实现常用的URL重写功能。
经过比较选择了只有32KB大小的UrlRewritingNet。
查看其文档主要功能有以下一些:1.基于正则表达式的重写2.支持Themes和母版页3.支持输出缓存4.支持信任级别为"Medium"的使用环境5.支持Postback6.支持无Cookie的Session7.运行时添加、修改改写规则8.容易安装使用OK!功能完全够用,就选他了!(本系统使用的是支持.html的方法,即第二种配置)Web.config中的配置:<configuration><configSections><section name="urlrewritingnet"requirePermission ="false"type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter" /></configSections><urlrewritingnetrewriteOnlyVirtualUrls="true"contextItemsPrefix="QueryString"defaultPage = "Default.aspx"defaultProvider="RegEx"xmlns="" ><rewrites><add name="RewritePhoto" virtualUrl="^~/(\d+).aspx"rewriteUrlParameter="ExcludeFromClientQueryString"destinationUrl="~/Default.aspx?ID=$1"ignoreCase="true" /><!--更多重写规则--></rewrites></urlrewritingnet><appSettings/><connectionStrings/><system.web><httpModules><add name="UrlRewriteModule"type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" /></httpModules><!--设置 compilation debug="true" 将调试符号插入已编译的页面中。
URL重定向和URL重写1、URL重定向URL重定向和URL重写之间的⽤词差异乍⼀看可能很细微,但这对于向客户端提供资源具有重要意义。
Core的URL重写中间件能够满⾜两者的需求。
URL重定向是客户端操作,指⽰客户端访问另⼀个地址的资源。
这需要往返服务器。
客户端对资源发出新请求时,返回客户端的重定向URL会出现在浏览器地址栏。
如果将 /resource 重定向到 /different-resource,客户端会请求 /resource。
服务器通过指⽰重定向是临时还是永久的状态代码作出响应,表⽰客户端应该获取 /different-resource 处的资源。
客户端在重定向URL处对资源执⾏新的请求。
将请求重定向到不同的URL时,可指定重定向是永久的还是临时的。
如果资源有⼀个新的永久性URL,并且你希望指⽰客户端所有将来的资源请求都使⽤新URL,则使⽤"301(永久移动)"状态代码。
收到301状态代码时,客户端可能会缓存响应。
如果重定向是临时的或⼀般会更改的,则使⽤"302(已找到)"状态代码,以使客户端将来不应存储和重⽤重定向URL。
2、URL重写URL 重写是服务器端操作,提供来⾃不同资源地址的资源。
重写URL不需要往返服务器。
重写的URL不会返回客户端,也不会出现在浏览器地址栏。
/resource 重写到 /different-resource 时,客户端会请求 /resource ,并且服务器会在内部提取 /different-resource 处的资源。
尽管客户端可能能够检索已重写URL处的资源,但是,客户端发出请求并收到响应时,并不会知道已重写URL处存在的资源。
iis中ISAPIRewrite实现php伪静态WEB效劳器电脑资料本文介绍在iis中通过ISAPIRewrite实现php伪静态的方法,感兴趣的朋友参考下,有些windows主机中,iis不支持.htaess 文件,如果是本地机器,apmserv效劳器可以用.htaess 文件,用apmserv效劳器环境配置伪静态,请参考文章:php伪静态配置之url rewrite实例教程。
这里主要介绍下d.ini配置php伪静态的方法。
例如,.myhack58./index.php可以用.myhack58./ 来直接访问。
.myhack58./newxx.php?=10 [newxx.php 是的详细页面]伪静态成为 .myhack58./new-10.html实现过程,d.ini 源文件:复制代码代码例如:[ISAPIRewrite]# 3600 = 1 hour# CacheClockRate 3600RepeatLimit 32# Protect d.ini and d.parse.errors files# from aessing throughRewriteRule ^/d(?:\.ini|\.parse\.errors).* [F,I,O] RewriteRule / /index.phpRewriteRule /new-([0-9]+).html$ /newxx\.php\?uid=$1 以上例子可以看出 RewriteRule / /index.php 是把index.php 转换为index.htmlRewriteRule /new-([0-9]+).html$ /newxx\.php\?uid=$1 转换为new-10{这个10为id=几的值}.html以上介绍了iis中在.ini中配置php伪静态的方法,希望对大家有所帮助,模板,内容仅供参考。
IIS7.5使⽤URLRewrite模块的简单设置实现⽹页跳转我们都知道Apache可以在配置⽂件⾥⽅便的设置针对⽹页或⽹站的rewrite,但是最近接⼿了⼀组IIS服务器,发现这货简单的没有配置⽂件可让我写,但是我却要实现⽹页rewrite的功能。
怎么办呢,google了⼀下,果断的找到了内容。
IIS URL Rewrite模块:将安装包下载到IIS服务器上,安装,它会⾃动检测IIS的安装位置,很简单直到最后finish结束,之后,重新打开IIS Manager,就会在每⼀个⽹站的⽬录下清楚地看到⼀个组件:URL Rewrite!双击,进⼊它的规则⾯板:可以在右上⾓直接点击Add rule,来添加规则。
这⾥我们简单的做⼀个rewrite。
⽬标:当⽤户访问/aaa的话,⾃动访问到⽂件名为aaa.html的⽂件。
实现:点击Add rule,然后选择Blank rule,之后如图去填写规则:Name: 起⼀个名字,我们这⾥起名为”set aaa to aaa.html”Requested URL: 选择'匹配模式'(Matches the pattern)Using: 选择'精确匹配'(Exact Match) (如果你正则表达式(Regular Expressions)⾜够好的话,也可以⽤正则进⾏匹配) Pattern: 输⼊匹配的内容'aaa' (由于是精确匹配,所以我们只要输⼊精确匹配的内容即可)Action type: 选择rewrite。
Rewrite URL: 输⼊我们需要的aaa.html点击右上⾓的 Apply,保存即可。
IIS从7.0开始⽀持了这个URL Rewrite模块,⾥⾯不仅可以定义单个链接的重定向,还有整个⽬录的重定向,可以说功能强⼤,⽤起来⽅便。
⼗分推荐⼤家使⽤!。
铁血Web站点安装配置手册V1.02一.安装Web服务器1.系统要求Windows2008R2 X642.IIS要求IIS7.5 【必需】URL Rewrite 【可选】Application Request Routing 【可选】3.用户账号需求每台Web服务器均需要新建一个名为“pic”的用户,且所有该用户的密码一致,隶属于Users组,用户不能更改密码,密码永不过期。
【目前所有web服务器有该账号,便于管理】4.UNC权限需求【使用UNC路径时使用,不使用UNC跳过,默认跳过】备注:只有当使用集群的时候使用UNC路径,如122,124,125服务器和102,103服务器铁血未来站点均使用UNC目录进行配置,所以在站点文件提供服务器上需要共享一个目录,目前为\\192.168.0.122\WebNew,高级共享,权限为:◇1Users 【本地】◇2Domain Users 【域用户】◇3Administrators【本地】◇4Pic 【本地】以上用户需对共享目录有完全控制的权限在每台Web服务器上需要对站点文件存储的UNC共享目录配置完全信任关系,命令如下:○1C:\Windows\\Framework64\v2.0.50727\caspol.exe -rs [清除所有其它的信任]○2 C:\Windows\\Framework64\v2.0.50727\caspol.exe -m -ag 1 -url "file:////\\192.168.0.122\WebNew\*" FullTrust -exclusive on [添加IIS信任]5.IIS安装IIS7.5具体安装功能有:5.1 IIS安装(默认安装功能)◇1常见HTTP功能静态内容、默认文档、目录浏览、HTTP错误、HTTP重定向◇2应用程序开发 、.net扩展性、ISAPI扩展、ISAPI筛选器、在服务器端包含文件◇3健康和诊断HTTP日志记录、请求监视、自定义日志记录、ODBC日志记录◇4安全性基本身份验证、windows身份验证、请求筛选、IP和域限制◇5性能静态内容压缩动态内容压缩◇6管理工具IIS管理控制台5.2安装IIS URL Rewrite 2.0(可选)需要URL重写功能安装,即伪静态化时下载:URL Rewrite Module 2.0 X64/download/URLRewrite5.3 安装“网络负载平衡管理器”功能(可选)需要几台服务器做负载均衡时安装该组件系统自带,添加删除程序中5.4Frameworker2.0、Frameworker4.05.5 Application Request Routing(可选)当需要反向代理的时候需要安装下载Application Request Routing/download/ApplicationRequestRouting6.系统配置6.1 %WINDIR%\\Framework\v2.0.50727\aspnet.config中配置CONFIG<legacyUnhandledExceptionPolicy enabled="true" />6.2配置 MetaBase.xml gzip 相关 HcNoCompressionForHttp10="FALSE" HcNoCompressionForProxies="FALSE"6.3设置系统级别的MachineKey(可以直接从122上拷贝一份web.config直接覆盖)文件:C:\Windows\\Framework64\v2.0.50727\CONFIG\web.config位置:在该文件的</system.web>之前添加内容:<machineKey decryption="DES" decryptionKey="具体值" validationKey="具体值" />6.4关闭服务器的HTTPErr日志功能,必须关闭。
ISAPI_Rewrite是一个功能强大的网址操纵发动机的基础上正则表达式。
它的行为是像Apache的mod_Rewrite ,但专为微软的Internet信息服务( IIS )。
ISAPI_Rewrite是一个ISAPI筛选器的书面纯的C / C + +所以速度极快。
ISAPI_Rewrite让您的自由,超出标准网址计划和发展自己的计划。
第一。
首先到官方网站下载ISAPI_Rewrite我的机子是32位的就下32位免费版的,链接地址如下:/download/isapi_rewrite/ISAPI_Rewrite3_0064_Lite. msi可以选择不同版本:/download.asp第二:安装安装ISAPI_Rewrite3,一路next,默认安装到了服务器的C:\ISAPI_Rewrite3(目录自由设置,但需保证有iis浏览的权限),接着打开IIS-web服务扩张-右键-添加一个新的web服务扩展,扩展名字写ISAPI_Rewrite,要求文件C:\ISAPI_Rewrite3\ISAPI_Rewrite.dll,并且设置为允许。
配置IIS打开iis,右键你的站点属性--ISAPI 筛选器--添加--筛选器名称是ISAPI_Rewrite3 --可执行文件就是ISAPI_Rewrite.dll的路径,比如C:\ISAPI_Rewrite3\ISAPI_Rewrite.dll 给用户网站主机头加上“network service”的读权限,其实就是该用户网站的文件夹的网络读写权限。
安装IIS Rewrite3后,会在全局的网站下“iis> 网站》属性> isapi 筛选器”选项里面,删除 isapi_rewrite3这个ISAPI筛选器,必须去掉这个isapi_rewrite3筛选器,否则其它的网站(除首页外)的页面无法访问!最后重启iis当然你可以把ISAPI_Rewrite3目录放入站点根目录下,但记得要给一个users和"network service"的读权限。
iis 反向代理url 规则在 IIS(Internet Information Services)中设置反向代理 URL 规则通常涉及使用 URL Rewrite 模块。
URL Rewrite 是 IIS 的一个模块,它允许你在请求到达服务器之前或之后对 URL 进行修改。
以下是设置反向代理 URL 规则的一般步骤:1. 安装 URL Rewrite 模块:确保在你的 IIS 中安装了 URL Rewrite 模块。
你可以通过IIS 管理器中的"Modules" 功能查看是否已安装。
2. 创建反向代理规则:打开 IIS 管理器,选择你想要设置反向代理的站点。
在站点上右键,选择 "URL Rewrite"。
3. 添加规则:在右侧的"Actions" 面板中,选择"Add Rule(s)..."。
4. 选择反向代理规则:在添加规则的向导中,选择 "Reverse Proxy" 规则类型。
5. 配置反向代理设置:•代理的目标 URL:输入你希望代理到的目标服务器的 URL。
•高级设置:可以在这里配置额外的选项,例如是否重写路径、处理尾随斜杠等。
6. 保存并应用规则:完成配置后,点击"Apply" 或"OK" 以保存规则。
以下是一个简单的反向代理规则示例:•源模式: ^/app/(.*)$•目标: http://backend-server/$1•条件: {REQUEST_URI} 不匹配模式 ^/app/(.*)$这个规则会将所有 /app/ 开头的请求代理到 http://backend-server/,并保留路径信息。
请注意,实际配置可能会根据你的具体情况而有所不同。
了解更多关于 IIS URL Rewrite 模块的信息,可以参考 Microsoft 官方文档或其他可靠的资源。
SEO 实战之:URL重写实现动态页面静态化(2009-06-12 23:23:17)分类:电子技术篇标签:url重写url-rewrite动态页面静态化seo搜索引擎优化早就想将我们的网站实现静态化,但是由于涉及到整体网站的修改,工作量巨大,需要较长时间,一直拖到现在。
趁着我们进入淡季,终于把这件事完成了。
静态化对于SEO的意义在于,搜索引擎对链接中的问号,“&”号等比较感冒,因此不利于搜索引擎对这些网页的收录,而且也会不计入内链数量。
据说google等正在改进对动态链接的支持,我没有考证过。
不过考虑到毕竟不止有google一个搜索引擎,静态化的工作还是必须的。
静态化当然还有客户界面更友好等优点,此处就不多详述了。
实现静态化有很多技术,比如套模板的方法,但是后期维护工作将十分麻烦。
最终,我还是选择了方便的伪静态化技术,即URL rewrite(URL重写)。
毕竟,我的目的只是seo。
所谓伪静态化,就是访问者和搜索引擎看不到问号和和号等了,但实际上页面还是动态的。
经比较试验,选用了(我的网站基于.Net的 )。
下载地址:/155/de/downloads.html使用起来也很方便,只要把dll文件放入bin目录,然后在web.config中做好相应配置即可。
主要是这几段:在<configuration>节点内加入<!-- for url rewritingnet--><configSections><section name="urlrewritingnet" requirePermission ="false"type="UrlRewritingNet.Configuration.UrlRewriteSection,UrlRewritingNet.UrlRewriter" /></configSections><!-- end for url rewritingnet-->在<system.web>节点内加入<!-- for url rewritingnet--><httpModules><add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" /></httpModules><!-- end for url rewritingnet-->还是在<configuration>节点内加入(放在前面的configsections之后)<!-- for url rewritingnet--><urlrewritingnet rewriteOnlyVirtualUrls="true"contextItemsPrefix="QueryString" defaultPage = "index.aspx"defaultProvider="RegEx"xmlns="/schemas/config/2006/07" ><rewrites><add name="RewriteRule1"virtualUrl="^~/(\d+).aspx"rewriteUrlParameter="ExcludeFromClientQueryString"destinationUrl="~/Default.aspx?ID=$1"ignoreCase="true" /><add name=" RewriteRule2"virtualUrl="^~/website /(.*)/default.aspx"rewriteUrlParameter="ExcludeFromClientQueryString"destinationUrl="~/website /default.aspx?id=$1"ignoreCase="true" /></rewrites></urlrewritingnet><!--end for url rewritingnet-->上面每个 <add>都是一个重写规则,你可以根据自己的要求增加规则。
URL重写与URL路由要介绍这两个内容,必须要从管线说起。
管线管线(Pipeline)这个词形象地说明了每个请求的处理过程:请求是在⼀个管道中,要经过⼀系列的过程点,这些过程点连接起来也就形成⼀条线。
这些⼀系列的过程点,其实就是由HttpApplication引发的⼀系列事件,通常可以由HttpModule 来订阅,也可以在Global.asax中订阅,这⼀系列的事件也就构成了⼀次请求的⽣命周期。
下⾯通过两张图⽚来详细说明⼀下请求的过程第⼀张图,主要展⽰:请求的过程从上⾯的图中,我们可以看出1.请求先交给HttpModule处理,然后由HttpModule交给HttpHandler,最后再由HttpHandler交回给HttpModule,由HttpModule结束请求。
2.Session的有效期,只有在HttpHandler处理时有效。
HttpModule处理时,都是⽆效的。
3.整个过程由⼀系列的事件组成,这点正应验了前⾯对管线的定义。
第⼆张图,主要说明:管线中所有事件的意义注意:这是iis7的处理过程,其中多了LogRequest与PostLogRequest这两个事件。
iis6的处理过程并没有这两个事件。
对于各个事件的含义,我想图⽚已经解释的很清楚了。
下⾯通过⼀个案例,来讲解⼀下本篇博客的主题。
URL重写中⼼思想:将请求的url重写成服务器可以处理的url形式。
然后由服务器根据重写后的url,查找出可以处理重写后的url的Handler,最后由Handler对其进⾏处理。
思路:2.编写⾃定义Module:IHttpModule,检测url是否是需要重写的url,如果是重写url。
由管线根据重写后的url来寻找对应的Handler对其进⾏处理。
3.编写⾃定义Handler:IHttpHandler,来处理重写后的url。
步骤:1.编写⾃定义Moduleusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Web;namespace Service{///<summary>/// url重写Module///</summary>internal class UrlRewriteModule : IHttpModule* 为了演⽰简单,直接写死地址* 这⾥我写了两个url,⼀个从虚拟路径的根路径重写(我本机的虚拟路径是/Web);另⼀个从url的末尾处重写* 具体⽤哪个url,根据需求。
Apache 下启用与设置 Rewrite 是很简单的事,也很灵活;但IIS下Rewrite 需要添加组件,通过筛选器的方式实现,下面是组件下载与配置方法。
IIS Rewrite 下载
点击这里下载 IIS Rewrite 组件
IIS Rewrite 配置
1、将下载的 IIS Rewrite 组件解压,放到适当的目录(如 C:Rewrite)下。
2、在“IIS管理器”里选择网站,右键,属性。
3、选择“ISAPI”,点击“添加”。
4、填入筛选器名称,如“rewrite”。
5、可执行文件下方点击“浏览”,选择刚才解压的Rewrite组件位置,Rewrite.dll。
6、确认选择正确后,点击“确定”。
7、点击“确定”,完成筛选器添加。
8、重启IIS。
9、重启IIS后,再次选择站点,右键,属性,看到如下所示向上的绿箭头,说明 IIS Rewrite 成功添加并运行。
IIS Rewrite 规则设置
解压后的 IIS Rewrite 组件目录(如 C:Rewrite)中,有一个 httpd.ini 文件,将相应规则写入到这个文件中即可。
安装方法压缩包中 Readme.txt 也有说明。
url重写的⽅法现在的⽹站⼀般都有url重写的⽅法,让⼈看上去像静态页⾯⼀样,具体怎么实现的,请看以下代码。
做个新闻系统,URL重写每个新闻1. Web.config 的配置<httpModules><add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" /></httpModules><configSections><section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" /></configSections><RewriterConfig><Rules><RewriterRule><LookFor>~/(\d+)\.aspx</LookFor><SendTo>~/Detail.aspx?ID=$1</SendTo></RewriterRule></Rules></RewriterConfig>2. 创建页⾯⽂件<asp:Repeater ID="rptbulletin" runat="server"><ItemTemplate><table cellspacing="0" cellpadding="0" width="100%" border="0"><tbody><tr><td height="20"><a class="Other" href='Log/<%# Eval("ID")%>.aspx' target="_blank" title='<%#Eval("Title") %>'>·<%# (Eval("Title") %></a></td></tr></tbody></table></ItemTemplate></asp:Repeater>建⽴ BulletinDetails.aspxPageLoad ⽅法中string id = Request.QueryString["ID"];if (id != null){读取新闻信息}。
iis7伪静态web.config配置的方法和规则方法一:Rewrite模块实现IIS7配置伪静态需要使用到Rewrite模块,首先我们要检查这个模块是否已经安装:1、打开IIS7,右击站点,选择“添加程序”;2、勾选右侧IIS 管理组件,查看下面的组件列表;3、如果url重写模块(Rewrite Module)已经安装,则在该列表中已经可以看到;4、如果没有安装,则可以点击这个组件并进行安装。
安装Rewrite模块完成后,就可以进行配置伪静态规则了:1、在web.config项目根目录下添加如下内容:<system.webServer><rewrite><rules><rule name="test" stopProcessing="true"><match url="^detail/(d+)/(d+).html" /><action type="Rewrite"url="index.php?tid={R:1}&id={R:2}" /></rule></rules></rewrite></system.webServer>2、启动IIS 后就可见伪静态规则生效了,可以通过地址栏输入:来访问这个url,就可以跳转至:方法二:改写伪静态规则如果一个网站有很多页面,那么伪静态规则将变得很复杂和冗长,为了解决这个问题,我们可以简化伪静态规则,Httpd.ini文件就是其中一种简单的实现方案:1、Httpd.ini文件添加:[ISAPI_Rewrite]RewriteRule ^/detail/([0-9]+)/([0-9]+).html$ /index.php?tid=$1&id=$2 [L]2、更新web.config文件:<system.webServer><rewrite><rules><rule name="test" stopProcessing="true"><match url="(.*)" /><conditions><add input="{HTTP_HOST}{REQUEST_URI}" pattern="^(请把这里换成你的网址)\(.*\)" /></conditions><action type="Rewrite" url="httpd.ini" appendQueryString="true" /></rule></rules></rewrite></system.webServer>。
iis中vue url重写无法保存入站规则
IIS 中 Vue URL 重写无法保存入站规则
在使用 IIS(Internet Information Services)中设置 Vue URL 重写规则时,有时可能会遇到无法保存入站规则的问题。
这个问题可能出现在以下场景中:
1. 缺少 URL 重写扩展:检查是否已在 IIS 中安装了 URL 重写扩展模块。
如果未安装,您需要手动安装此扩展。
2. 配置错误:确保您在 IIS 中正确配置了入站规则。
检查相关配置是否正确且符合您的需求。
确保您已正确设置 URL 重写规则以实现 Vue URL 重写。
3. 文件权限问题:有时候,用户在保存入站规则时可能会遇到权限问题。
请确保具有足够的权限来编辑 IIS 配置文件。
您可以尝试使用管理员权限或与管理员沟通以解决权限问题。
4. Web.config 冲突:在 Vue 项目中,可能会存在与 IIS 的 Web.config 文件冲突的情况。
请确保您正确配置了 Web.config 文件,并且与 IIS 的设置不冲突。
如果出现冲突,您需要进行适当的调整以解决此问题。
综上所述,当您在 IIS 中设置 Vue URL 重写规则时无法保存入站规则时,您可以尝试检查是否缺少 URL 重写扩展、配置是否正确、文件权限是否足够以及是否存在与 Web.config 冲突的情况。
通过逐一排除这些可能性,您应该能够解决此问题并成功保存入站规则。
请尽快尝试这些解决方案,并告知我是否还需要提供其他帮助。
伪静态 UrlRewrite(Url重写) 实现和配置------转载2010-08-30 11:06 来源:博客园作者:夏楚枫阅读:81次核心提示:大家一定经常在网络上看到很多网站的地址后缀都是用XX.HTML或者XX.ASPX等类似静态文件的标示来操作的吧,那么大家有怀疑过他真的是一个一个的静态生成的文件么,静态文件的生成的优缺有好有坏,对于访问量很大的网站,利用静态文件可提高服务器的核心提示:大家一定经常在网络上看到很多网站的地址后缀都是用XX.HTML或者XX.ASPX等类似静态文件的标示来操作的吧,那么大家有怀疑过他真的是一个一个的静态生成的文件么,静态文件的生成的优缺有好有坏,对于访问量很大的网站,利用静态文件可提高服务器的运行稳定和速度...大家一定经常在网络上看到很多网站的地址后缀都是用XX.HTML或者XX.ASPX等类似静态文件的标示来操作的吧,那么大家有怀疑过他真的是一个一个的静态生成的文件么,静态文件的生成的优缺有好有坏,对于访问量很大的网站,利用静态文件可提高服务器的运行稳定和速度,坏处就是生成列表的时候会因为增加一条记录从而需要所有相关的列表进行重构,当然不排除有的公司已经攻克的这个问题,但对于大众程序员来说,他依旧是个问题,而且生成的化对于中小型网站也不一定会比动态的号,因为管理比较麻烦。
结构以上事实,然后伪静态技术产生了,规范的说就是URL重写技术,他对于ASPX格式支持最好,当然也可以重写HTML格式的文件,但这需要IIS的设置,相对比来说,ASPX格式的更方便,本站就是采用了该URL重写技术,这个技术优点显而易见:方便搜索引擎收录,方便查看,等等。
那么接下来我们来看看如何配置他吧首先你要在你的项目里引用两个DLL:URLRewriter.dllActionlessForm.dll真正实现重写的是 URLRewriter.dll 但是如果你要实现分页,那么必须使用这个ActionlessForm.dllURLRewriter.dll1、下载文件下载地址1:/source/524514下载地址2:/UserFiles/URLRewriter.rar 下载地址3:/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi下载地址4:本站下载2、配置WEB.CONFIG文件在项目中引用这个程序集,伪静态语法...(例把.aspx 的页面用.html来表示,web.config文件中--> 添加以下节点 <configuration><configSections><section name="RewriterConfig" requirePermission= "false" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" /></configSections><RewriterConfig><Rules><RewriterRule><!--一个参数-><LookFor>~/cn/ss_(.[d]*).html</LookFor><SendTo>~/cn/news.aspx?id=$1</SendTo></RewriterRule><RewriterRule><!--传两个参数的--><LookFor>~/cn/ss_(.[d]*)0(.[w]*).html</Look For> <!--(.[d]*)(.[w]*).html 或者ss_,(.[0-9]*),(.[0-9]*).html--><SendTo><![CDATA[~/cn/news.aspx?id=$1&sid=$ 2]]></SendTo></RewriterRule><RewriterRule><!--三个参数--><LookFor>~/cn/ss_(.[d]*)0(.[w]*)0(.[w]*).ht ml</LookFor><SendTo><![CDATA[~/ZH-CN/news.aspx?id=$1&si d=$2&n_id=$3]]></SendTo></RewriterRule><RewriterRule><LookFor>~/dfsaddf/index(d*).html</LookFor><SendTo>~/Favorites_Page.aspx</SendTo></RewriterRule></Rules></RewriterConfig></configuration><system.web><httpHandlers><add verb="*" path="*.aspx" type="URLRew riter.RewriterFactoryHandler, URLRewriter" /><add verb="*" path="*.html" type="URLRew riter.RewriterFactoryHandler, URLRewriter" /></httpHandlers></system.web><!--<httpModules><add type="URLRewriter.ModuleRewriter, URLRew riter" name="ModuleRewriter"/></httpModules>-->设置完以上步骤,就基本可以运行了,其中<RewriterRule/>标签里面就是重写的一个模块,<LookFor/>里面的是重写后的地址,而<SendTo/>则是原地址。
URL REWRITE,我的翻译是URL重写,或者URL重定义。在asp+iis的网站开发模式中,
可以实现如将http://xxxxxx.cn/news.asp?id=220 变成http://xxxxxx.cn/220.html 的
形式。例如某条新闻的实际网址是http://xxxxxx.cn/news.asp?id=220 ,通过URL重写之
后,我们就可以直接输入 http://xxxxxx.cn/220.html 的网址,来访问该条新闻。
对于iis服务器,要实现此项功能,需从 http://www.helicontech.com/download/ 网站上,
下载Lite Version (free)免费版的软件,将此软件安装于服务器之后,在其安装目录上,找到
配置文件httpd.ini,用记事本打开,输入相应的规则。然后,在相应的站点上,ISAPI中,添加
此组件。OK,配置完成,功能生效。
2、URL_REWRITE的规则写法参考:
当我需要将将news.asp?id=234的映射成news/234.html时,只需设置:
RewriteRule /news/(\d+)\.html /news\.asp\?id=$1 [N,I]
这样就把 /news/234.html 这样的请求映射成了 /news.asp?id=234
当有对/news/234.html的请求时:web服务器会把实际请求转发给/news.asp?id=234
比对于某一个简单应用可以是:
RewriteRule /news/(\d+)\.html /news/news\.php\?id=$1 [N,I]
这样就把 http://www.xxxxxx.com/news/234.html 映射到了 http://www.xxxxxx.co
m/news/news.php?id=234
一个更通用的能够将所有的动态页面进行参数映射的表达式是:
把 http://www.xxxxxx.cn/foo.php?a=A&b=B&c=C
表现成 http://www.xxxxxx.cn/foo.php/a/A/b/B/c/C
RewriteRule (.*?\.php)(\?[^/]*)?/([^/]*)/([^/]*)(.+?)? $1(?2$2&:\?)$3=$4?5$5: [N,I]
3、使用URL重写功能的好处:
首先,有助于增加网站的安全性,因为它隐藏了诸如asp php jsp等相关的服务器技术,以最
原始的html文件形式,呈现于客户。
其次,在平台移植时,不会各页面的网站。如将news.asp?id=123转移news.php?id=123,
即将asp平台转移php,如使用此URL重写,这个页面的网址就是news/123.html。
其它方面,方便URL引用,有助于搜索引擎的枚举。
ISAPI_rewrite中文手册
http://www.isapirewrite.cn/docs/
其他相关URL重写扩展产品
ABC_Rewrite
http://www.jrsw.com/iis/index.html
紫雨轩IIS URL 重写组件
http://www.redcheek.net/blogview.asp?logID=110