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

如何在现有.htaccess Rewrite规则中添加忽略重写的规则?

如何在现有.htaccess中添加指定内容的重写排除规则

嘿,没问题!要让指定内容跳过这些重写规则,你只需要在现有规则的最前面(RewriteEngine on之后)添加一条跳过重写的规则就行。具体操作分两种常见场景:

场景1:排除某个目录(比如/static/下的所有内容)

如果是想让某个目录下的所有文件/子目录都直接访问,不用走后续重写,你可以加这条规则:

RewriteRule ^static/ - [L]

这里的^static/是匹配以static/开头的请求,-表示不做任何重写,[L]表示这是最后一条规则,匹配到就停止后续处理。

场景2:排除单个文件(比如/special.html)

要是只需要排除某个特定文件,规则改成这样:

RewriteRule ^special.html$ - [L]

^special.html$精准匹配这个文件的请求,同样用[L]终止后续规则。

修改后的完整.htaccess代码

把排除规则加到合适位置后,完整的文件会是这样(以排除/static/目录为例):

<IfModule mod_rewrite.c>
    <IfModule mod_env.c>
        SetEnv HTTP_MOD_REWRITE On
    </IfModule>
    RewriteEngine on
    # 添加的排除规则:跳过/static/目录的重写
    RewriteRule ^static/ - [L]
    
    RewriteRule . - [E=REWRITEBASE:/]
    RewriteRule ^api$ api/ [L]
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L]
</IfModule>

小提示

  • 如果你要排除多个内容,可以添加多条RewriteRule ^xxx/ - [L]或者用正则匹配多个模式,比如RewriteRule ^(static|assets)/ - [L]就能同时排除/static/和/assets/目录。
  • 记得测试一下,确保指定的内容现在可以直接访问,不会被重写到index.php。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:35:00