扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
你好!
成都创新互联公司专注于企业网络营销推广、网站重做改版、肃南裕固族自治网站定制设计、自适应品牌网站建设、H5网站设计、成都商城网站开发、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为肃南裕固族自治等各大城市提供网站开发制作服务。
这个需要配置伪静态,详见如下:
【1】、下载【MSDNURLRewriting.zip】,不要在网络上直接下载URLRewriter.dll,一般网络上的URLRewriter.dll都是未经过编译重新生成只有8k大小,而实际的大小是20k左右。
【2】、MSDNURLRewriting.zip解压后会有MSDNURLRewriting.msi文件,点击安装,在安装文件中可以找到URLRewritingCode.sln,点击打开,然后重新生成解决方案,就可以得到重新生成的URLRewriter.dll(20k大小)。
【3】、把URLRewriter.dll复制一份到项目的bin文件下,然后添加引用。
【4】、Web.Config文件的配置:
【5】、在IIS中找到自己的网站,点【属性】》【主目录】》【配置】》{【应用程序配置】》【添加】}, 勾选掉确定文件是否存在
添加的可执行文件路径为:
c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll
如下图:
参考:
希望对你有所帮助,还望采纳,谢谢!!!
解决方法:如下,
我们的网页URL后经常会跟有多个的参数,比如Information.aspx?ID=1Type=2,这样的URL让人太直观的看到了参数,感觉不是很好,而且会导致URL很长,所以可以用下面的方法来重写URL,即可以缩短URL、又易于被搜索引擎收录,还可以隐藏真实的路径,使参数变得隐晦一点点,提高安全性。
使用C#重写URL的步骤:(以改写Information.aspx?ID=1Type=2为例)
第一步,下载MS的URLRewriter.dll,添加引用到你的Web程序的Bin文件夹下,下载地址是
第二步,下载完成后,在web.config里设置如下:
?xml version="1.0" encoding="utf-8" ? !--overred-- configuration configSections section name="RewriterConfig"type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" / /configSections RewriterConfig Rules RewriterRule LookFor~/Infor_(/d+)_(/d+)/.aspx/LookFor SendTo~/Information.aspx?ID=$1Type=$2/SendTo /RewriterRule /Rules /RewriterConfig system.web httpHandlers add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" / /httpHandlers /system.web /configuration
其中 section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" / 用于指定配置节"RewriterConfig"的处理程序类的名称为”URLRewriter.Config.RewriterConfigSerializerSectionHandler”,该类存在于bin目录下的URLRewriter .dll文件中。
关键的是这两句 LookFor~/Infor_(/d+)_(/d+)/.aspx/LookFor SendTo~/Information.aspx?ID=$1Type=$2/SendTo
LookFor~/Infor_(/d+)_(/d+)/.aspx/LookFor 表示,用户输入的URL(即显示的URL),_(/d+)_(/d+)/.aspx是 URL中文件名匹配的正则表达式(大家也可根据自己的需要自行设定)。
希望对你有帮助!
可能是Url路径出现了问题!你看一下你的路径,在VS里面调试路径多了一个WebUI,路径一般是,而在发布以后,在IIS里面就没有那个WebUI的路径了。注意一下就知道了!
第一步:下载 Intelligencia.UrlRewriter.dll组件,这个网上太多了。
第二步:添加Intelligencia.UrlRewriter.dll的引用。
第三步:在web.config中设置三个地方
1、在configSections/configSections节中加上section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" /;
2、在httpModules/httpModules节中加上add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/;
3、在configuration/configuration节中添加rewriter rewrite url="~/(.+).html$" to="~/ViewNews.aspx?ID=$1" / /rewriter (这段替换规则需要根据你的实际需要去修改,如果要重写成HTML的格式,需要在IIS中设置映射,这个网上方法非常多。其中替换规则可以设置多个。)elligencia.UrlRewriter.dll的引用。
常用规则
当使用通配符映射或者使用ASP.NET处理所有HTTP请求的时候,IIS的默认文档机制也就失去了该有的作用,以下代码就是用来重新实现默认文档的方法:
rewrite url="^(.*)/(\?.+)?$" to="$1/default.aspx$2" /
注意:使用“processing="restart"”的时候将会导致重写引擎从头开始执行所有的重写规则,此时应当注重包含“/default.aspx”字符串的处理。
如果你需要同时支持多个默认文档,那么以上代码需要修改为:
if url="^(.*)/(\?.+)?$" rewrite exists="$1/default.aspx" to="$1/default.aspx$2" / rewrite exists="$1/index.aspx" to="$1/index.aspx$2" / rewrite exists="$1/index.html" to="$1/index.html$2" //if
编辑以上规则代码的时候,尤其要注意确认文件是否存在。
此外,在使用通配符映射或者使用ASP.NET处理所有HTTP请求的时候,你会发现.gif、.css等文件无法正常访问,这是因为此时对这些文件类型的处理都被ASP.NET所拦截。修正方法如下:
rewrite url="^(/.+(\.gif|\.png|\.jpg|\.ico|\.css|\.js)(\?.+)?)$" to="$1" processing="stop" /
两个比较特殊的正则表达式字符是“^”和“$”(不是必须的),“^”代表URL的开头,“$”代表URL的结尾。使用这两个符号可以使您更加精确的控制重写动作,以确保程序所匹配的URL正是您想处理的。
“~/”表示当前网站应用程序运行所在的虚拟根目录,当您把网站应用程序安装于虚拟目录(或者非根目录)的时候,这尤其有用,而无须重新编写任何代码来替换您的虚拟根路径。
模式匹配在处理查询字串(QueryStrings)的时候尤其有用,这可以让您的URL去掉类似于“?id=3”的代码段,这非常有用,可以让你轻松的实现伪静态。
下面列出两个我们认为非常有特色的重写规则:
(1) 当目标URL不包含自定义查询字串的时候:
rewrite url="^~/mypage(\?.+)?$" to="~/default.aspx$1" /
此时“$1”匹配的是(\?.+)?,也就是所有的查询字串。
(2) 当目标URL包含自定义查询字串的时候:
rewrite url="^~/mypage(\?(.+))?$" to="~/default.aspx?page=mypage$2" /
注意此时需要使用“”来代替“”,这是XML文档语法的需要。
通过Intelligencia.UrlRewriter.dll组件可以很轻松的在asp.net中实现url重写,只需要把Intelligencia.UrlRewriter.dll添加到项目的bin文件夹下,再在web.config中稍微配置一下就可以成功的实现asp.net中的url重写,下面讲一下具体的配置步骤。
第一步:从网上下载Intelligencia.UrlRewriter.dll文件,放到bin文件夹下。
第二步:假如要实现Default.aspx?id=25显示为Default_25.html只需要在Web.config配置如下信息。
configuration
configSections
!--UrlRewriter--
section
name="rewriter"
requirePermission="false"
type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler,
Intelligencia.UrlRewriter"
/
/configSections
rewriter
rewrite
url="~/Default_(\d+).html$"
to="~/Default.aspx?id=$1"
processing="stop"
/
/rewriter
system.web
httpModules
add
type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter"
name="UrlRewriter"
/
/httpModules
/system.web
/configuration
经过上面简单的配置就可以在浏览器中输入.../Default_25.html就可以看到../Default.aspx?id=25的效果了
hehe
asp.net
中要实现
url重写
需要调用一个组件
好像是
urlrewrite.dll
然后再webconfig中设置一些
重写规则
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流