Tag: url rewriting

使用自定义URL重写器,IIS6和带.htm,.html等的URL

我有一个自定义网站,我正在建立自动url重写使用自定义引擎。 只要页面url没有像.htm或.html那样结束,重写就可以正常工作。 对于这些页面,它直接进入iis 404页面,而不是首先点击我的重写引擎。 我在该网站的IIS6配置的“主目录”部分中有*通配符处理程序,但这些URL似乎被它忽略(如css,jpg,js等等,以便发送到我的网站中的url处理程序)项目)。 我如何设置IIS6强制这些url被发送到处理程序,如果它仍然正常存在,仍然提供页面? 处理程序基本上这样做 if (!File.Exists(Request.Path)) { doMyRewriting(); } 我必须假设使用这样的块(只是和示例,真正的一个做一些其他的东西来格式化Request.Path以适应所有事情)应该运行“doMyRewriting()”如果请求的文件不存在否则它会正常地为页面提供服务。 我错了吗? 如果我特意告诉IIS将.htm和.html页面发送到.NET处理程序,则重写会起作用,但如果页面实际存在则不会提供它。 任何帮助将不胜感激。 提前致谢!

url重写为aspx页面

我有一个名为foo.aspx的页面,id喜欢将url重写为bar.something 这该怎么做? 如何在asp.net中重写URL重写 我应该创建一个通用处理程序? 或者我应该获得一些url重写模块并添加到应用程序?

C#mvc3将sitemap.xml重定向到控制器操作

我想将针对www.domain.com/sitemap.xml的网站上的每个呼叫重定向到控制器操作。 我怎样才能做到这一点? 到目前为止我已经有了这个,但返回的状态代码是302.我想用它返回200状态,但仍然重定向/重写为控制器动作。 我问的原因是我希望每次调用所提到的url重定向到一个控制分数。 控制器执行一些foo生成xml站点地图。 然后需要返回此控制分数的输出。 protected void Application_BeginRequest() { //Check if an call for the sitemap.xml has been made if (Request.Path == “/sitemap.xml”) { Response.RedirectToRoute(“XmlSitemap”); } }

ASP.Net URL编码

我正在ASP.net中实现URL重写,我的URL导致我的问题世界。 URL是从部门和类别的数据库生成的。 我希望员工能够使用适当的特殊字符向数据库添加项目,而不会破坏站点。 我在构造URL之前编码数据。 有几个问题…… IIS在到达.net之前对URL进行解码,因此无法正确解析其中包含“/”的任何内容。 ASP.net被某些页面中的“〜”无效的url搞糊涂了 我从内置测试服务器迁移到我的本地IIS服务器(XP机器),任何包含编码&(%26)的URL都会给我一个“错误请求”错误。 UrlEncode留下一些破碎的字符,如’。’ 我确实有两个关于这个主题的相关post,当时我只看到小问题不是上游的大问题。 我发现了一些注册表技巧来解决“错误请求”问题,但我将部署到共享托管环境,使其无用。 我也知道这是一个解决某些安全问题的方法所以我不想在不知道我正在打开什么样的蠕虫的情况下绕过它。 而不是试图强制.net传递原始URL,或覆盖IIS设置,我想首先制作真正安全的URL。 我会注意到我已经尝试过AntiXss.URLEncode,HttpUtility.URLEncode,URI.EscapeDataString。 我甚至尝试过双重URLEncodng等愚蠢的事情。 是否有一个实用程序可以满足我的需要,或者我真的需要自己动手。 我甚至考虑做一些Hacky,比如用一些不寻常的字符替换%。 最终结果应至少是可读的,这是首先使用URL重写的重点。 很抱歉很长的post – 我只是想确保我已经包含了所有必要的细节。 我似乎无法找到任何相关信息,这似乎是一个常见的问题 – 所以也许我错过了一些大事。 感谢您的帮助,以及对长篇解释的耐心! 为清晰起见编辑: 当我说从数据库构建url时,我的意思是目录结构是从我的数据库中的部门和类别构建的。 一些示例URLS – 的MyStore /制冷/酒吧+ Fridge.aspx 的MyStore /烹饪+ Equipment.aspx 的MyStore /厨房/切割+ Boards.asxpx 当我使用像“Beverage&Bar”或“Pastry / Decorating”这样的部门来构建我的URL时会出现问题。 尽管首先编码这些导致上述问题。 除了特殊的字符编码问题外,我的处理程序已经实现并且工作正常。

.NET 4中的URL重写?

我听说在Visual Studio 2010中使用其URL路由引擎提供了用于URL重写的内置function。 我使用类似intelligencia urlrewrite的插件在早期版本的visual studio中进行了URL重写。 任何人都可以解释我或指导我理解吗? 想在我的网站上实现动态和自定义url重写。

IIS URL重写模块导致“无法在Web服务器上启动调试”

我刚刚为IIS 7实现了URL Rewrite Module 2.0,它似乎导致Visual Studio 2010中的“无法在Web服务器上启动调试”错误。 除了在web.config中评论节点外,是否有人知道VS2010是否可以修复此问题? 谢谢

Request.Url.Query和Request.QueryString有什么区别?

我一直在追踪Url Rewriting应用程序的错误。 该错误显示为查询字符串中某些变音字符的编码问题。 基本上,问题是基本上是/search.aspx?search=heřmánek的请求被重写了“search = he%c5%99m%c3%a1nek”的查询字符串 正确的值(使用一些不同的工作代码)是将查询字符串重写为“search = he%u0159m%u00e1nek” 注意两个字符串之间的区别。 但是,如果您同时发布,则会看到Url Encoding会重现相同的字符串。 直到你使用编码中断的context.Rewrite函数。 断字符串返回’heÅmánek’(使用Request.QueryString [“Search”],工作字符串返回’heřmánek’。这个改变发生在调用重写函数之后。 我使用Request.QueryString(工作)跟踪到一组代码,另一组使用Request.Url.Query(request.Url返回一个Uri实例)。 虽然我已经解决了这个问题,但我的理解还有一个漏洞,所以如果有人知道差异,我就准备好了。

IIS7,RewritePath和IIS日志文件

我在IIS7上运行的ASP.NET 3.5应用程序中使用Context.RewritePath()。 我在应用程序BeginRequest事件中做它,一切工作文件。 / sports的请求被正确地重写为default.aspx?id = 1,依此类推。 问题是在我的IIS日志中,我看到了对/Default.aspx?id=1的GET请求,而不是/ sports。 这种代码在IIS6下完美运行。 由于必须实现某些业务逻辑,因此不能使用Microsoft Rewrite模块。 谢谢。 编辑: 看来我的处理程序太早了,但是如果我将逻辑移到后来的事件中,那么整个重写的东西都不起作用(为时已晚,StaticFileHandler会收到我的请求)。 我用谷歌搜索和谷歌搜索,问道,不敢相信没有人有这个问题? 编辑: 哎呀! 这是我在IIS论坛上发现的: “这是因为在集成模式下,IIS和asp.net共享一个公共管道,现在IIS可以看到RewritePath,而在IIS6中,它甚至没有被IIS看到 – 你可以通过使用经典模式来解决这个问题IIS6“。 最后更新 :请看下面我的答案 ,我在生产环境中使用了一年多的时间后对结果进行了更新。

MVC3和重写

我正在编写一个MVC3应用程序,需要以http:// [server] / [City] – [State] / [some term] /的forms使用URL重写。 据我了解,MVC3包含一个使用{controler} / {action} / {id}的路由引擎,该引擎在Global.asax文件中定义: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”); routes.MapRoute( “Default”, // Route name “{controller}/{action}/{id}”, // URL with parameters new { controller = “Home”, action = “Index”, id = UrlParameter.Optional } // Parameter defaults ); } 传统上(在非MVC应用程序中),我会使用一些URL重写风格来解码诸如http://www.myserver.com/City-State/somesearch/之类的URL来查询类似于以下内容的查询字符串: http: //www.myserver.com/city=City&state=State&query=somesearch 请记住,此请求将来自http://www.myserver.com/Home 这可以在不必指定控制器的情况下完成……类似这样的事情: routes.MapRoute( […]

如何在C#中加密/解密url

我有一个URL www.site-address / site-page / page1.aspx?username = deepu&password = deepu如何将URL更改为www.site-address / site-page / page1.aspx?username = 232322323232&password = 2323232322323 ie我想加密我通过URL传递的字段,请帮助我使用.net加密和解密C#中的URL,现在我使用response.redirect并将这些值作为查询字符串传递….请帮助….