如何使用IIS URL Rewrite实现落地页及短URL跳转且不破坏404机制
可行性确认
可以通过URL重写实现需求,同时完全保留404错误的正常响应逻辑,不需要再创建冗余的目录和index.htm文件。
不同服务端的实现配置
Nginx 配置
在站点的server配置块中添加如下规则即可,精准匹配指定跳转路径,未匹配到的请求会走原有资源查找逻辑,不存在的资源仍然正常返回404:
# login路径跳转规则 rewrite ^/login$ /user/accountLogin.htm permanent; # 合作方专属路径跳转规则 rewrite ^/happypartnercompany$ /partners/about.xyz?partner=123 permanent; # 原有站点资源访问、404配置不需要修改,示例参考: location / { try_files $uri $uri/ =404; }
Apache 配置
在站点根目录的.htaccess文件中添加以下规则即可:
RewriteEngine On # login路径跳转 RewriteRule ^login$ /user/accountLogin.htm [L,R=301] # 合作方路径跳转 RewriteRule ^happypartnercompany$ /partners/about.xyz?partner=123 [L,R=301]
404逻辑说明
- 以上规则均为精准匹配,只有请求路径和规则完全一致时才会触发跳转
- 所有未命中重写规则的请求,完全沿用站点原有逻辑处理
- 若请求路径既没有命中重写规则,也没有对应静态资源,服务端会正常返回404状态码,不会被重写逻辑拦截
注意事项
- 调试阶段可以把301永久跳转改为302临时跳转,避免浏览器缓存旧规则影响调试效果
- 如果有大量同类跳转需求,可以通过正则分组实现批量配置,不需要逐条编写规则,进一步简化维护成本
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

