体育资讯网

您现在的位置是:首页 > 分类11 > 正文

分类11

.neturl重写源码(重写URL)

hacker2022-06-13 17:07:19分类1148
本文目录一览:1、PHPURL重写怎么实现?高手请进!

本文目录一览:

PHP URL重写怎么实现?高手请进!

nginx的话在你的站点配置文件里面location /{}里面添加

if (!-e $request_filename){

    rewrite ^/(.*)$ /index.php/$1 last;

}

root 配置到入口文件的路径

至于具体的路由规则,就看各个框架具体的设置了,

当然不用框架也可以依靠$_server解析里面的参数实现分发

ASP.net URL重写

第一步:下载 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文档语法的需要。

asp.net如何进行url重写

解决方法:如下,

我们的网页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中文件名匹配的正则表达式(大家也可根据自己的需要自行设定)。

希望对你有帮助!

asp.net url怎么才能重写

通过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

发表评论

评论列表

  • 礼忱孚鲸(2022-06-14 00:57:08)回复取消回复

    onfigSections!--UrlRewriter--sectionname="rewriter"requirePermission="false"type="Intelligencia.UrlRewriter.Configuration.RewriterConfig

  • 末屿笙痞(2022-06-14 04:57:05)回复取消回复

    l只需要在Web.config配置如下信息。configurationconfigSections!--UrlRewriter--sectionname="rewriter"requi

  • 辞眸里予(2022-06-14 04:26:07)回复取消回复

    onfig Rules RewriterRule LookFor~/Infor_(/d+)_(/d+)/.aspx/LookFor Se

  • 晴枙双笙(2022-06-14 00:47:38)回复取消回复

    r .dll文件中。关键的是这两句 LookFor~/Infor_(/d+)_(/d+)/.aspx/LookFor SendTo~/Information.aspx?ID=$1Type=$2/SendToLookFor~/Infor

  • 南殷云胡(2022-06-14 02:24:58)回复取消回复

    ookFor SendTo~/Information.aspx?ID=$1Type=$2/SendToLookFor~/Infor_(/d+)_(/d+)/.aspx/LookFor 表示,用户输入的URL(