如何在 .htaccess 文件中设置一些 PHP 头文件

5 php .htaccess http-headers

所以我的一些 PHP 文件中有这些标题:

<?php
    header('Content-Type: text/html; charset=UTF-8');
    header('Content-Style-Type: text/css');
    header('Content-Script-Type: application/javascript');
    header('HTTP/1.1 200 OK');
    header('Content-language: en-US');
    header('X-Powered-By: PHP/5.2.17');
    header('Last-Modified: Tue, 01 Jan 2013 00:00:00 GMT');
    header('Cache-Control: no-store, no-cache, max-age=0, must-revalidate');
    header('Pragma: no-store, no-cache, max-age=0, must-revalidate');
    header('Expires: Tue, 01 Jan 2013 00:00:00 GMT');
?>
Run Code Online (Sandbox Code Playgroud)

如何在我的 .htaccess 文件中设置它们?(应该仅适用于特定文件),这是我到目前为止所得到的:

<FilesMatch "^(index.php|about.php|contact.php)$">
    # HTTP Headers should be set in here
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

ame*_*iel 3

您需要安装 mod_headers,否则可能会收到错误 500。您可以将 headers 设置包装在条件中以检查 mod_headers 是否存在。

<FilesMatch "\.(html|htm|js|css)$">
    <ifModule mod_headers.c>
        Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
        Header set Expires "Thu, 1 Jan 2015 05:00:00 GMT"
    </ifModule>
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

您还可以取消设置标题。例如,如果您位于负载平衡器后面,则真实的访问者 IP 可以以您不想向应用程序公开的自定义标头的形式传递。

Header unset Real-Visitor-IP
Run Code Online (Sandbox Code Playgroud)

除了过期和 etag 以及特定于 Web 服务器的自定义标头之外,您不应该在 Web 服务器级别篡改标头。它们中的大多数应该在应用程序级别进行管理,如果您向它们传递更改的内容类型,您将阻止某些框架正常工作。