You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求在.htaccess中实现带条件的URL重写:匹配/amp/结尾并跳转

嘿,这就帮你实现这个.htaccess的重写需求,我把规则和每部分的作用都拆解清楚,方便你理解和调整:

最终.htaccess规则代码
RewriteEngine On

# 满足两个AND条件时执行重写
RewriteCond %{REQUEST_URI} ^(.+)/amp/$ [NC]
RewriteCond %{DOCUMENT_ROOT}/mobile%1.html -f
RewriteRule ^(.+)/amp/$ https://www.examplesite.com/mobile$1.html [L,R=301]
规则细节解释
  • 开启重写引擎:第一行RewriteEngine On是必须的,确保Apache的重写模块生效(前提是你已经启用了mod_rewrite模块)
  • 第一个条件(检查URL末尾的/amp/):RewriteCond %{REQUEST_URI} ^(.+)/amp/$ [NC]
    • %{REQUEST_URI}代表当前请求的路径部分(比如/folder/file/amp/)
    • 正则^(.+)/amp/$会捕获/amp/前面的路径内容(比如这里会捕获/folder/file),[NC]表示忽略大小写匹配
  • 第二个条件(检查目标文件是否存在):RewriteCond %{DOCUMENT_ROOT}/mobile%1.html -f
    • %{DOCUMENT_ROOT}是你的网站根目录的服务器绝对路径
    • %1是引用第一个条件里捕获的内容(也就是/folder/file),组合起来就是/mobile/folder/file.html
    • -f表示检查这个路径对应的文件是否是存在的普通文件
  • 执行重写:RewriteRule ^(.+)/amp/$ https://www.examplesite.com/mobile$1.html [L,R=301]
    • [L]表示这是最后一条规则,匹配后不再处理后续规则
    • R=301表示永久重定向(如果需要临时重定向可以改成R=302),搜索引擎会更新索引指向新地址
注意事项
  • 确保你的服务器已经启用了mod_rewrite模块,如果是Apache的话,通常需要在配置里开启RewriteEngine并允许.htaccess文件生效(设置AllowOverride All)
  • 测试的时候可以先使用R=302临时重定向,确认规则正常工作后再改成R=301永久重定向

内容的提问来源于stack exchange,提问作者arjun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:30:00