How to Add Vary: Accept Header Using cPanel
If you are hosting your website on a server with cPanel, you can configure the Vary: Accept header either through the .htaccess file, using a custom PHP script, or with built-in options in cPanel (if available). Below are the steps to set up the header for your site.
For closely related caching / header topics, see Gzip and Vary: Accept-Encoding, Cache-Control: max-age — Complete Guide, and Cache-Control: max-age with public.
Option 1: Add the Vary: Accept Header via .htaccess
Log in to cPanel
Navigate to your hosting account and log in to cPanel.
Open File Manager
- Under the Files section, click File Manager.
- Go to the root directory of your website (e.g.,
/public_html/).
Edit the .htaccess File
- Locate the .htaccess file. If it does not exist, create one by clicking + File and naming it
.htaccess. - Right-click the file and select Edit.
Add the Following Code
<IfModule mod_headers.c>
Header append Vary: Accept
</IfModule>
Save Changes
Click Save Changes in the editor and close the file.
Test Configuration
Verify the header is applied by using browser developer tools or a cURL command:
curl -I https://yourdomain.com
Option 2: Add the Vary: Accept Header Using PHP
Log in to cPanel and Navigate to File Manager
Edit the Index File
- Locate your main PHP file (e.g.,
index.phporhome.php) in the/public_html/directory. - Right-click the file and select Edit.
Add the Following Code at the Top
<?php
header("Vary: Accept");
// Example content negotiation
if (strpos($_SERVER['HTTP_ACCEPT'], 'application/json') !== false) {
header("Content-Type: application/json");
echo json_encode(["message" => "This is a JSON response"]);
} else {
header("Content-Type: text/html");
echo "<html><body>This is an HTML response</body></html>";
}
?>
Save the File and Test the Changes
Option 3: Use cPanel Built-in Header Features
Some cPanel installations include tools for managing HTTP headers (e.g., via the Apache Handlers or Headers Modules). If your hosting provider enables this:
- Log in to cPanel.
- Go to Advanced > Apache Handlers or a similar section.
- Look for options to add custom headers.
- Add the
Vary: Acceptheader.
Verifying the Vary: Accept Header
- Using cURL: Run the following command:
- Using Browser Developer Tools:
- Open your browser Developer Tools (F12).
- Go to the Network tab.
- Reload the page and inspect the response headers.
- Using Online Tools: Use tools like WebPageTest or GTmetrix to verify the presence of the Vary header.
curl -I https://yourdomain.com
Look for:
Vary: Accept
Best Practices for Vary: Accept in cPanel Hosting
- Use Only When Necessary: Avoid over-fragmenting caches by combining multiple Vary headers (e.g.,
Vary: Accept, User-Agent). - Test Across Browsers: Ensure different client types (e.g., JSON API clients, mobile devices) receive the correct content.
- Combine with Proper Cache-Control: Use caching headers like
Cache-ControlandExpiresfor better performance. - Check Compression: Ensure gzip or Brotli compression is enabled for even better results.
By following these steps, you can set up the Vary: Accept header on a cPanel server to enable content negotiation and improve caching behavior.


