asp.net如何进行url重写
展开全部
解决方法:如下,
我们的网页URL后经常会跟有多个的参数,比如Information.aspx?ID=1&Type=2,这样的URL让人太直观的看到了参数,感觉不是很好,而且会导致URL很长,所以可以用下面的方法来重写URL,即可以缩短URL、又易于被搜索引擎收录,还可以隐藏真实的路径,使参数变得隐晦一点点,提高安全性。
使用C#重写URL的步骤:(以改写Information.aspx?ID=1&Type=2为例)
第一步,下载MS的URLRewriter.dll,添加引用到你的Web程序的Bin文件夹下,下载地址是http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi
第二步,下载完成后,在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=$1&Type=$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=$1&Type=$2</SendTo>
<LookFor>~/Infor_(/d+)_(/d+)/.aspx</LookFor> 表示,用户输入的URL(即显示的URL),_(/d+)_(/d+)/.aspx是 URL中文件名匹配的正则表达式(大家也可根据自己的需要自行设定)。
希望对你有帮助!
我们的网页URL后经常会跟有多个的参数,比如Information.aspx?ID=1&Type=2,这样的URL让人太直观的看到了参数,感觉不是很好,而且会导致URL很长,所以可以用下面的方法来重写URL,即可以缩短URL、又易于被搜索引擎收录,还可以隐藏真实的路径,使参数变得隐晦一点点,提高安全性。
使用C#重写URL的步骤:(以改写Information.aspx?ID=1&Type=2为例)
第一步,下载MS的URLRewriter.dll,添加引用到你的Web程序的Bin文件夹下,下载地址是http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi
第二步,下载完成后,在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=$1&Type=$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=$1&Type=$2</SendTo>
<LookFor>~/Infor_(/d+)_(/d+)/.aspx</LookFor> 表示,用户输入的URL(即显示的URL),_(/d+)_(/d+)/.aspx是 URL中文件名匹配的正则表达式(大家也可根据自己的需要自行设定)。
希望对你有帮助!
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
2016-03-24 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
URL重写可以通过编程的方式来实现:
1、在asp.net项目中引入程序集URLRewriter,即在网站的Bin文件夹中添加URLRewriter.dll。
2、在web.config中的configuration节点下添加URLRewriter的配置。
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>
</configSections>
注意:configSections必须是configuration节点下的第一个子元素。
3、在web.config中的system.web节点下添加URLRewriter的配置。
<httpModules>
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
</httpModules>
4、在web.config中的configuration节点下配置url重写的规则。
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/article/(\d+)/</LookFor>
<SendTo>~/article_info.aspx?articleId=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
url重写规则说明:
(1)、<RewriterRule>可出现多次,每个重写规则都需要添加一个<RewriterRule>节点。
(2)、在获得匹配<LookFor>节点的url后,转向到相应的<SendTo>节点的url。
(3)、<LookFor>中可使用正则表达式来表示参数。路径转向后,<SendTo>节点中的占位符$1将会用<LookFor>节点中正则表达式所匹配的参数来替换。
(4)、<SendTo>配置中的url占位符可出现多个,如:$2、$3,占位符将按顺序依次由<LookFor>节点中则表达式所匹配的参数来替换。
1、在asp.net项目中引入程序集URLRewriter,即在网站的Bin文件夹中添加URLRewriter.dll。
2、在web.config中的configuration节点下添加URLRewriter的配置。
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>
</configSections>
注意:configSections必须是configuration节点下的第一个子元素。
3、在web.config中的system.web节点下添加URLRewriter的配置。
<httpModules>
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
</httpModules>
4、在web.config中的configuration节点下配置url重写的规则。
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/article/(\d+)/</LookFor>
<SendTo>~/article_info.aspx?articleId=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
url重写规则说明:
(1)、<RewriterRule>可出现多次,每个重写规则都需要添加一个<RewriterRule>节点。
(2)、在获得匹配<LookFor>节点的url后,转向到相应的<SendTo>节点的url。
(3)、<LookFor>中可使用正则表达式来表示参数。路径转向后,<SendTo>节点中的占位符$1将会用<LookFor>节点中正则表达式所匹配的参数来替换。
(4)、<SendTo>配置中的url占位符可出现多个,如:$2、$3,占位符将按顺序依次由<LookFor>节点中则表达式所匹配的参数来替换。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、IIS6 使用 ISAPI_WRITE 组件,或 URLREWRITE 组件。。。
2、IIS7 以上,使用 URLREWRITE2 组件更好
3、可以使用第三方组件。。
4、可以通过 GLOBAL.ASAX 重写。。。自己研究一下或百度一下。
自己百度一下相关组件的用法。
2、IIS7 以上,使用 URLREWRITE2 组件更好
3、可以使用第三方组件。。
4、可以通过 GLOBAL.ASAX 重写。。。自己研究一下或百度一下。
自己百度一下相关组件的用法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询