恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

获取ISAPI_Rewrite重写后的URL

  • 首页
  • 资讯中心
  • /
  • 获取ISAPI_Rewrite重写后的URL

相关资讯

Blender到Unity材质无损迁移:告别贴图丢失的自动化工作流 2026/8/3 19:08:58
Godot 4.2 Geometry2D:5分钟搞定复杂多边形碰撞检测 2026/8/3 19:08:58
Unlock-Music终极指南:3步解锁加密音乐,实现格式自由转换 2026/8/3 19:08:58

最新资讯

iOS调试思维培养:iOS-Debug-Hacks教你如何高效定位问题
Nexus-Roblox完全指南:免费终身使用的Roblox脚本执行工具,安全无封禁风险
关于文本情感分析的问题
Kaneo社区支持:获取帮助和分享经验的最佳途径
Godot游戏开发:设计模式实战指南与项目架构优化
决策树与随机森林:从核心原理到实战调优的完整指南

今日推荐

无线一体式手持三维扫描仪推荐:摆脱电脑束缚的工业检测新选择
3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南
[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

本周热门

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

获取ISAPI_Rewrite重写后的URL

发布时间:2026/8/3 19:08:58
获取ISAPI_Rewrite重写后的URL ISAPI_Rewrite是一个较为好用的URL重写组件安装和配置都比较简单防盗链的设置也极其简单。问题如何获取被ISAPI_Rewrite重写后的URL。测试环境IIS6中使用ISAPI_Rewrite对Default.aspx进行重写重写后的地址为Index-After-ReWriter.html。需要获取重写后的地址即Index-After-ReWriter.html。一些弯路首先想到的就是Request对象如Request.Url和Request.RawUrl。测试后发现获取到的地址都是Default.aspx。上网找了找ISAPI_Rewrite的处理流程图找到了下面这个图片。那么再来看下IIS处理aspx页面的流程图。在提交到ASP.NET模块处理前同样都是ISAPI扩展的aspnet_isapi.dll和ISAPI_Rewrite.dll从第一张图中可以看出ISAPI_Rewrite.dll解析了重写后的URL即测试环境中的Index-After-ReWriter.html即解析成Default.aspx后再转由aspnet_isapi.dll进行处理。真的是这样吗去IIS中去一看便知。注意是在IIS中的网站全局属性中查看如果需要使重写模块对单一的网站起作用那么需要单独对网站进行设置。那么在Request对象中还会保存有重写后的URL地址吗又上网找了找正如博文当你的博客文章的作者变成“编辑整理”你作何感想中提到的一样带来的一个现象是点了前两页获取到的信息的都是这篇文章 使用Request.RawUrl获取当前请求重写UrlRewrite后的Url。我基本保持文章中提供的源代码测试了下。protectedoverridevoidOnInit(EventArgs e){stringaRequest.ServerVariables[SCRIPT_NAME];//string b Request.ServerVariables[QUERY_STRING];//string c Request.Url.AbsoluteUri;//string d Request.ServerVariables[HTTP_URL];stringfRequest.Url.ToString();base.OnInit(e);}调试了下发现不管怎么获取得到的值还是Default.aspx。:(不过提供的源代码中那三段莫名其妙的注释提醒了我 因为ISAPI_Rewrite这个组件是从Apache mod_rewrite移植过来的那么PHP等其他语言应该有类似的通用方法说的时髦点就是跨平台的方法去获取重写后的URL地址。解决方法继续去查发现的确是这样。“在修改URL之前ISAPI_Rewrite会保存原URL到Http头命名为X-Rewrite-URL。然后它能够在脚本中作为HTTP_X_REWRITE_URL服务器变量取回。因为在IIS里系统变量名不能被修改所以ISAPI_Rewrite不能提供与Apache兼容的变量名REQUEST_URI。如果你的应用程序的设计要依赖于REQUEST_URI变量你必须修改它用HTTP_X_REWRITE_URL变量来代替。”使用抓包工具Fiddler抓包或者加断点查看Request.ServerVariables的值。发现HTTP_X_REWRITE_URL中保存了重写前的URL地址。可以这样测试一下。protectedvoidPage_Load(objectsender, EventArgs e){if(Request.ServerVariables[HTTP_X_REWRITE_URL]null)return;Response.Write(Request.ServerVariables[HTTP_X_REWRITE_URL]);Response.End();}结果是这样文中有些臆断之处还望各位大虾不吝赐教

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号