分享
三行代码  ›  专栏  ›  技术社区  ›  Jesper

htaccess只匹配根目录中的特定文件类型

  •  1
  • Jesper  · 技术社区  · 2 天前

    /i/ 我保存图像和视频的地方。像png、gif和mp4这样的文件。 我在.htaccess文件中有一些代码可以从根目录静默重定向到/I。

    例子: domain.com/awE1.png被静默重定向到domain.com/i/awE1.png

    RewriteCond %{REQUEST_URI} !/i/ [NC]
    RewriteRule \.(?:jpe?g|gif|bmp|png|tiff|ico|mp4)$ i%{REQUEST_URI} [L,NC]
    

    问题是,如果根文件夹或其他子目录(如/s)中有一个文件,并且该文件是一个映像,则只会导致404错误。有什么方法可以让.htaccess只在根文件夹中查找预定义的文件扩展名吗?

    谢谢!

    1 回复  |  直到 2 天前
        1
  •  1
  •   jacouh    2 天前

    不应重写根目录或其他目录下存在的文件,如下所示:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !/i/ [NC]
    RewriteRule \.(?:jpe?g|gif|bmp|png|tiff|ico|mp4)$ i%{REQUEST_URI} [L,NC]
    

    使用第一个RewriteCond,它只重写不存在的图像文件,其他目录中存在的任何文件都不会重写到/i/文件夹。