遇到了urlrewriter的:无法使用前导.. 在顶级目录上退出问题
- Intelligencia.UrlRewriter 2.0 RC1 beta 6
- .net framework 2.0
- visual studio 2008
- iis6
正好要做地址重定向的项目,在http://urlrewriter.net/上下载了最新的代码和类库。
好像有些时候没有更新了,加之asp.net mvc的出现,这个功能要被整合到.net框架之中了,但由于还没有升迁到.net3.5,所以还是要借助这个东西来让URL更容易understand,更clean一些。
本来是引用源代码在项目之中的,但是配置了web.config运行以后,虽然实现了页面重定向,但是地址栏里的地址显示出来的是定向目标的地址而不是重定向前的地址:(
后来直接引用编译后的类库:把Intelligencia.UrlRewriter.dll复制到网站bin目录下并引用,修改web.config后实现重定向功能。
这个新版本有另外的新功能:就是可以在url中写入条件语句来重定向(这可是写在web.config里面的,汗):
<rewriter>
<if url="/tags/(.+)" rewrite="/tagcloud.aspx?tag=$1" />
<!-- same thing as <rewrite url="/tags/(.+)" to="/tagcloud.aspx?tag=$1" /> -->
</rewriter>还有类似unless的条件语句:
<unless header="HTTP_HOST" match="my.domain.com">
<rewrite url="^/tags/big/(.+)$" to="/big-tag-cloud.aspx?tag=$1" processing="stop" />
<rewrite url="^/tags/small/(.+)$" to="/tiny-tag-cloud.aspx?tag=$1" processing="stop" />
<rewrite url="^/tags/medium/(.+)$" to="/normal-tag-cloud.aspx?tag=$1" processing="stop" />
</unless>现在,问题来了,我的目录中含有~/news/shownews.aspx的文件,我做如下配置:
<rewrite url="~/news/20080324/test.aspx" to="~/news/shownews.aspx" />
出现:
“/”应用程序中的服务器错误。
无法使用前导 .. 在顶级目录上退出。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.HttpException: 无法使用前导 .. 在顶级目录上退出。然后想用相对路径来回避顶级目录的问题:
<rewrite url="~/news/20080324/test.aspx" to="http://www.cnblogs.com/news/shownews.aspx" />
问题依旧,但是无数次的尝试有如下发现,当改成这个地址时:
<rewrite url="~/news/20080324/test.aspx" to="../news/shownews.aspx" />
出现:
“/”应用程序中的服务器错误。
无法找到资源。
说明: HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。
请求的 URL: /news/news/shownews.aspx当然我没有~/news/news/shownews.aspx这个文件,所以也找不到,但是至少可以不出现500错误,于是尝试:
<rewrite url="^/news/test/test.aspx" to="http://www.cnblogs.com/shownews.aspx" />
这下返回:
“/”应用程序中的服务器错误。
无法找到资源。
说明: HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。
请求的 URL: /shownews.aspx我不希望我的项目根目录下有这么多的文件,所以还是又找来其它的文章来分析。
经过分析发现是重名目录的问题(虽然不知道这算是什么问题)上面有一个出错的写法:
<rewrite url="~/news/20080324/test.aspx" to="~/news/shownews.aspx" />
如果这样写,就可以正确重定向:
<rewrite url="~/news/20080324/test.aspx" to="~/test/shownews.aspx" />
或是改掉重写前的地址:
<rewrite url="~/test/20080324/test.aspx" to="~/news/shownews.aspx" />
又不行了,看来urlrewriter可以正确运行,但是页面中有一些不能解析的东西,按照网上找来的方法,
去掉页面中所有../的连接;
把母版页转移动根目录下;
把控件转到根目录下;
。。。尽量避免一切会产生../的组件出现
注意:<asp:HyperLink ID="HyperLink_4xAI" runat="server" ImageUrl="/images/logo.gif" NavigateUrl="~/Default.aspx" meta:resourcekey="HyperLink_4xAIResource1">4xAI</asp:HyperLink>
这个控件,当它位于用户控件中时,ImageUrl的属性是如果出现~,还是会报上面的错误,只能用绝对地址,至少我的测试结果是这样:(
下面提供的文章不一并对您有用,不过如果你可能是通过其他的搜索关键字来看到这篇文章,可能会对您有所帮助:
在 ASP.NET 中执行 URL 重写
无法使用前导 .. 在顶级目录上退出(Cannot use a leading .. to exit above the top directory)
对ASP.Net中URL重写的疑问
无法使用前导.. 在顶级目录上退出
Tip/Trick: Url Rewriting with ASP.NET
技巧/诀窍:在ASP.NET中重写URL
遇到了urlrewriter的:无法使用前导.. 在顶级目录上退出问题相关推荐
- 无法使用前导 .. 在顶级目录上退出
Technorati 标签: 无法使用前导,urlrewriter,超链接路径 最近在用urlrewriter做一个项目,开始还没问题,添加了urlrewriter并配置好以后发现出现了点击页面的超链 ...
- 如何将django部署从顶级目录迁移到子目录下(NGINX UWSGI DJANGO)
因为公司网站合并,要将我们的DJANGO项目从IP的顶级目录迁移到域名的二级目录. 以前硬编码的URL可惨了. 还涉及到upload目录,静态目录,websocket目录. 全用{% url %}问题 ...
- python文件移动到文件夹_python – 将文件夹中的文件移动到顶级目录
我正在尝试为我的工作完成一个清理文件组织系统的脚本.我的脚本的最后一部分需要进入给定目录中的所有文件夹,并将每个文件夹中的所有文件移动到目录中.例如: import os path = 'C:/Use ...
- 要读顶级会议上的论文
在机器学习.计算机视觉和人工智能领域,顶级会议才是王道.国内教材和CNKI上的基本是N年前老掉牙的东西.有人会质疑这些会议都只是EI.是的,这的确非常特殊:在许多其它领域,会议都是盛会,比如socie ...
- 转载-【讨论】为什么不去读顶级会议上的论文?适应于机器学习、计算机视觉和人工智能
看了版上很多贴子,发现很多版友都在问"热门研究方向"."最新方法"等.有同学建议国内某教授的教材.或者CNKI.或者某些SCI期刊.每当看到这种问题,我都有点纳 ...
- 诺奖得主本庶佑:真正一流的工作往往没有在顶级刊物上发表!
Datawhale干货 诺奖得主:本庶佑,来源:思庐哲学 研究方法应该是多元的,每位学人都可能有适合自己的方法,本庶佑的方法是其中很有特色的一元.本文摘选本庶佑关于求学.研究及创新等方面的观点,供大家 ...
- macos无法使用sudo_如何在macOS上使用Touch ID运行Sudo命令
macos无法使用sudo Typing passwords is for suckers, which is why the best part of the latest MacBook Pro ...
- 赵旭计算机论文,上海交通大学赵旭教授团队在计算机视觉顶级期刊上发表最新研究成果...
近日,自动化系赵旭教授团队硕士研究生宋潇.方良骥.胡翰文在International Journal of Computer Vision (IJCV) 上在线发表研究论文"EdgeSter ...
- SQL 递归查询最顶级目录
废话少说上代码: create FUNCTION [dbo].[Fun_getParent](@child VARCHAR(30)) returns @t table(vid varchar(100) ...
最新文章
- Hadoop Streaming框架使用(一)
- windows下编译jsoncpp 1.y.z
- Linux共享文件夹中毒,Linux find命名快速查找中毒文件操作实例
- Recom Airbnb embedding
- Redis 学习笔记-NoSQL数据库 常用五大数据类型 Redis配置文件介绍 Redis的发布和订阅 Redis_事务_锁机制_秒杀 Redis应用问题解决 分布式锁
- IHttpModule接口
- apt update无法连接上 127.0.0.1:10808
- Differential Geometry之第九章常平均曲率曲面
- Ranger知识地图
- 中文手册_Etherscan API中文手册
- C语言练习题(递归)
- linux 945gse 显卡驱动,HP520的945Expres集成显卡只能以1024x768的模式显示的求助
- 请求转发与重定向详解
- 数据库之SQL更新语句中update set from用法
- 好文推荐(十六)——Git使用详细教程
- windows防火墙设置_Windows防火墙:您应该知道的事情
- 成熟FOC电机控制代码 大厂成熟FOC电机控制图。 可用于电动自行车,滑板 车,电机FOC控制等
- 字节数组与String类型的转换
- android 字体大小换算,Android单位换算与UI适配
- Qpython读取手机短信
热门文章
- Python入门学习笔记11(静态方法、类方法与属性方法)
- supervisor配置环境变量(PATH)
- Linux - chmod
- linux中/bin和/sbin和/usr/bin和/usr/sbin
- js字符串与数组的处理
- 关于dismissViewControllerAnimated值得注意的一点(deinit)
- JavaScript中setAttribute用法
- Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果
- JS中定时器setTimeout,setInterval,clearTimeout,clearInterval用法
- php操作redis phpredis扩展