首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >让.NET RewriteMap为带有或不带尾斜杠的旧URL工作

让.NET RewriteMap为带有或不带尾斜杠的旧URL工作
EN

Stack Overflow用户
提问于 2017-02-15 09:19:42
回答 1查看 525关注 0票数 1

我在我的RewriteMap文件中使用web.config文件将旧URL重定向到新URL。目前的规则如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <rule name="Localhost Rewrite Rules" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^(.*\.)?example\.com$" />
        <add input="{lhRewrites:{REQUEST_URI}}" pattern="(.+)" />
      </conditions>
      <action type="Redirect" appendQueryString="false" url="{C:1}" redirectType="Permanent" />
    </rule>

请注意,模式故意硬编码的领域,因为这是一个更大的规则集的一部分,是特定于每个域名。因此,我并不是想优化或重写(原谅双关语)的一般规则。

rewriteMap.config文件包含以下重定向:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<rewriteMap name="lhRewrites">
  <add key="/old" value="/new" />
</rewriteMap>

目前,当我访问http://example.com/old时,该规则运行良好--它重定向到http://example.com/new

但是,当“旧”URL包含一个尾随斜杠(即http://example.com/old/ )时,它不起作用。我需要它工作,无论是否存在一个拖尾斜杠上的旧网址。

我不想重复所有的映射键。

非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2018-01-05 11:14:00

如果在regexp ^(.*[^/])(\/?)$中不尾随斜杠匹配URL,然后将匹配的URL传递到重写地图中,则可以实现这一目标。你的规则应该是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<rule name="Localhost Rewrite Rules" stopProcessing="true">
  <match url="^(.*[^/])(\/?)$" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^(.*\.)?example\.com$" />
    <add input="{lhRewrites:/{R:1}}" pattern="(.+)" />
  </conditions>
  <action type="Redirect" appendQueryString="false" url="{C:1}" redirectType="Permanent" />
</rule>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42256115

复制
相关文章
nginx url自动301加斜杠
请求地址不带斜杠,浏览器301 Moved Permanently响应跳转到带斜杠地址
路过君
2020/08/24
3K0
如何让旧手机或平板电脑变身“安全眼”?
想要时刻关注家中安全却没有足够的钱或者DIY技能去安装一个摄像头,怎么办? 现在,只要你有一个多余的智能手机或者平板电脑,甚至是一个长期占据抽屉一角的旧设备就行了。赶快忘掉资金短缺的不愉快,准备着手在家里钻个洞吧! 有一系列安卓系统应用可以将他们的设备变成安全摄像头,能够及时为身处别地的人提供家庭入侵者的第一手信息。 旧手机化身摄像头:绝不是个新鲜事物 此前,有过如何利用一个旧智能手机创建一个安全监控网络的演示,无论你的旧设备运行的是Android、iOS、Windows系统或是黑莓手机,都有大量的应用
FB客服
2018/02/06
2K0
如何让旧手机或平板电脑变身“安全眼”?
类型com.itextpdf.text.List不带有参数类型
Error:java:类型com.itextpdf.text.List不带有参数类型
IT云清
2019/01/22
5930
JS 替换日期的横杠为斜杠
//例如1:     <script type="text/javascript">       var dt = "2022-01-25";             var dt = dt.replace("-","/");         //只替换第一个“-”:2022/01-25       alert(dt);     </script> //例如2:     <script type="text/javascript">      var dt = "2022-01-25";        
用户1349575
2022/01/25
6.7K0
URL重写
(图片来自:https://github.com/Bikeman868/UrlRewrite.Net)
问问计算机
2021/05/08
5K0
URL重写
正斜杠和反斜杠的区别_vb斜杠和反斜杠
参考链接: 正斜杠/和反斜杠\的区别 https://www.cnblogs.com/codingmengmeng/p/6179822.html
全栈程序员站长
2022/09/20
2.4K0
正斜杠和反斜杠的区别_vb斜杠和反斜杠
为 ASP.NET Core 程序制作 URL 的 301/302 跳转
发布于 2020-01-11 17:33 更新于 2020-01-12 14:08
walterlv
2020/02/12
3.9K0
Apache 的 ReWrite 的应用
Apache的mod_rewrite是提供了强大URL操作的杀手级 的模块,可以实现几乎所有你梦想的URL操作类型,其代价是你必须接受其复杂性,因为mod_rewrite的主要障碍就是初学者不容易理解和运用,即使 是Apache专家有时也会发掘出mod_rewrite的新用途。 换句话说:对mod_rewrite,或者是打退堂鼓永不再用,或者是喜欢它并一生受用。 ReWrite可以应用在以下方面或者解决以下问题: URL的规划 规范的URL 说明: 在有些网站服务器上,一个资源会拥有多个URL,在实
wangxl
2018/03/07
1.5K0
javascript转义unicode十六进制编码且带有反斜杠后的html
由于后端返回的html代码中所有标签前后都有反斜杠“\”,且有\uxxxx形式的十六进制unicode编码,如果直接把所有反斜杠替换为%,则会把标签前后的反斜杠一并替换,导致最后无法转义,所以先把十六进制开头的\u替换为%u,则可以使用unescape转码,然后再单独把反斜杠替换为空返回即可。这里使用decodeURI或者decodeURIComponent方法会报错,应该代码格式不对。
蓓蕾心晴
2018/12/28
1.8K0
[javascript]使用正则替换url中最后面的斜杠
替换成http://gofly.sopans.com 把最后面的/去掉 , 可以这样搞
唯一Chat
2021/03/15
1.6K0
搜索优化:利用IIS的URL重写模块配置IIS让不带www的域名永久301到www上面。
在对网站做优化的时候通常会让不带www的域名如zjkdh.com永久301到自已要优化的域名上面,如(www.zjkdh.com),这么做就是为了集权,把所有域名的权重集到一个上面,这样的话有可能会使你域名的权重更集中,不分散,这种前提下有可能会比不处理的情况涨的多一些。
睿儿网络郝刚
2020/09/08
3.3K0
搜索优化:利用IIS的URL重写模块配置IIS让不带www的域名永久301到www上面。
Spring @PostMapping 能在 URL 中带有参数吗
Spring 的 @PostMapping 在使用 POST 提交的时候,能不能在 URL 中带参数?
HoneyMoose
2022/09/11
5740
Spring @PostMapping 能在 URL 中带有参数吗
如何让BYOE在云中为企业工作
目前,在云中使用用户自己的加密产品已变得更为普遍。专家Ed Moyle在本文中讨论了BYOE的优缺点,以及用户在正式实施前所需了解的内容。 花几分钟时间与大多数技术人员讨论下公共云服务,你很快就会得到一个肯定的结论:从安全性的角度来看,云应用具有较大的挑战性。在一定程度上,这是云本身的固有特性决定的。让云变得有价值和强大的原因之一就是先进技术基础的商品化,这就意味着技术堆栈一定层面以下的一切(具体层面高低因云模式不同而不同)在客户眼中就是一个黑盒。这是非常强大的,因为它意味着客户可以重定向资源,否则它将
静一
2018/03/27
3.1K1
如何让BYOE在云中为企业工作
matlab让我的旧手机起死回生
前不久有伙伴在Q群中询问用matlab调用网络摄像头的事,其实咱很久之前就分享过,由于看的人太少了就给删了。今天重新整理分享出来,本文的主角就是IP Webcam,通过它就可以轻松将智能手机转变成网络摄像头,这也是为啥将标题取为“matlab让我的旧手机起死回生”的原因。如果手中有闲置旧手机,安上IP Webcam,打开手机无线热点(无需使用数据流量和WiFi就能用,仅打开热点),旧手机里面变成一个全能监控王。接下来就一起来看看怎么操作的吧!
巴山学长
2022/03/30
1.2K0
matlab让我的旧手机起死回生
.Net 7的带参和不带参的Main入口
EntryManagedMain是默认的,EntryCrtMain则是隐藏的一种托管入口类型。 CLR会判断当前的托管Main是否包含了参数,如果有且参数个数为1,则是默认的那种,如果无,则是第二种。所以导致了Main入口函数的参数可有可无。
江湖评谈
2023/02/12
5530
路径中 斜杠/和反斜杠\ 的区别
路径中使用斜杠/和反斜杠\的区别到底是什么。查阅了一些资料后可知。 Unix使用斜杆/ 作为路径分隔符,而web应用最新使用在Unix系统上面,所以目前所有的网络地址都采用 斜杆/ 作为分隔符。 Windows由于使用 斜杆/ 作为DOS命令提示符的参数标志了,为了不混淆,所以采用 反斜杠\ 作为路径分隔符。所以目前windows系统上的文件浏览器都是用 反斜杠\ 作为路径分隔符。随着发展,DOS系统已经被淘汰了,命令提示符也用的很少,斜杆和反斜杠在大多数情况下可以互换,没有影响。 知道这个背景后,可以总结一下结论: (1)浏览器地址栏网址使用 斜杆/ ; (2)windows文件浏览器上使用 反斜杠\ ; (3)出现在html url() 属性中的路径,指定的路径是网络路径,所以必须用 斜杆/ ;
全栈程序员站长
2022/07/07
2.7K0
彻底理解斜杠和反斜杠的区别
鉴于在Windows(开发环境)和Linux(部署环境)之中的路径(斜杠和反斜杠)经常会进行混淆,所以专门写一篇笔记来进行区分。大部分是按照博客园那位老兄的思路进行编写,并且结合另外一些人的想法,进行了整理和排版。
用户7947045
2023/09/14
1.2K0
conda是旧爱,mamba为新欢
之前,习惯性用conda来管理环境,安装软件。大多时候都还不错,但是就是喜欢转圈圈,下载不动,最后给出些不清晰的信息~
生信技能树
2023/02/27
4.3K0
conda是旧爱,mamba为新欢
为什么网站中的CSS或JS会带有v或version参数
在查看网页源码的时候经常会发现带有类似 ?v=13566 或者 ?version=15678 的 CSS 和 JS 文件。如下所示: <script src="w3h5.js?version=1568
德顺
2019/11/13
4.3K0
为什么网站中的CSS或JS会带有v或version参数
点击加载更多

相似问题

获取带有或不带URL尾斜杠的目录?

50

htaccess将带有或不带尾斜杠的url重定向到新url。

10

实现不带尾斜杠的url

10

htaccess为带有或不带尾斜杠的urls添加.html扩展

21

带有.NET参数的拖尾斜杠URL

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文