在Apache htaccess中有条件地设置标头

4

我有一个使用PHP Laravel框架的应用程序,它有一个标准的.htaccess文件,如下所示。

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

如果请求的URL映射到静态文件,则提供服务,否则调用index.php。我需要为静态文件添加一组标题,这将是上述最后两个条件的"else"。我需要类似下面的伪代码。
if static file
    Header set MyHeaderOne "something"
    Header set MyHeaderTwo "something"
end if

我可以很好地添加头文件,但是在有条件地这样做时卡住了。我稍微查看了一下SetEnvIf,这可能是可行的。

那么,如何仅为静态文件添加一些标题,即仅当请求的文件存在时(例如/images/example.jpg)?非常感谢您的提前帮助!


你的静态文件代码是什么? - Panama Jack
1个回答

8

哇,那似乎很明显 - 不确定我是怎么错过了。非常感谢! - ba0708
是的,这是2.4版本中一个不错的新功能。 - Nemo
哇,那真的帮了我很多。谢谢你。因为如果你使用FilesMatch,即使页面出现404错误,它也能正常工作。所以这不太好,但只有在文件存在时才有效。 - Example person

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接