Expand my Community achievements bar.

Geo location headers are not getting added

Avatar

Community Advisor

Hi Folks,

 

I am trying to configure dispatcher for Geo location headers x-aem-client-country and x-aem-client-continent. But I don't see those are being added by CDN. Below are the changes that I made 

 

farm file:

 

/headers {
    "Cache-Control"
    "Content-Disposition"
    "Content-Type"
    "Expires"
    "Last-Modified"
    "X-Content-Type-Options"
    "x-aem-client-country"
    "x-aem-client-continent"
}

 

in clientheaders.any file added 

 

"x-aem-client-country"
"x-aem-client-continent"

 

Let me know if I am missing anything.

 

Topics

Topics help categorize Community content and increase your ability to discover relevant content.

10 Replies

Avatar

Level 2

Hello @Anudeep_Garnepudi ,

Did you also add the header in your vhost file. if not you need to set the headers in your vhost file. Here is a example. 

<IfModule mod_headers.c>
    Header set x-aem-client-country "<value>"
Header set x-aem-client-continent "<value>" </IfModule> 

 

Avatar

Community Advisor

@ashish_k_sharma 

I don't want to set the value or header, this header and value has to be set by CDN based on user Country and Continent.

Ahh, I misunderstood your question.


Try this:

Avatar

Community Advisor

@Anudeep_Garnepudi 

You should be able to get the headers value once you add them to clientheaders.any file

Can you try retrieving the headers using req.getHeader("x-aem-client-country")

Please check the logs and verify the response are you getting

Avatar

Community Advisor

@Anudeep_Garnepudi 

You should be able to get the header values if you checking on AEM cloud. It worked for me earlier

Please check with Adobe support as you are unable to get the values

 

 

Avatar

Community Advisor

Hi @Anudeep_Garnepudi 
If you need the header in the cache header section as well in order to have this presented at the clientside all the time.

 

https://experienceleague.adobe.com/en/docs/experience-manager-dispatcher/using/configuring/dispatche... 

 

Caching HTTP Response Headers

NOTE
This feature is available with version 4.1.11 of the Dispatcher.

The /headers property lets you define the HTTP header types that Dispatcher is going to cache. On the first request to an uncached resource, all headers matching one of the configured values (see the configuration sample below) are stored in a separate file, next to the cache file. On subsequent requests to the cached resource, the stored headers are added to the response.

Below is a sample from the default configuration:

/cache {
  ...
  /headers {
    "Cache-Control"
    "Content-Disposition"
    "Content-Type"
    "Expires"
    "Last-Modified"
    "X-Content-Type-Options"
    "Last-Modified"
  }
}
 
But why are you doing this server side? I don't know the logic/context but server side can impact this due to caching the content and same content will be served from all the geo location. 

we also had the same use case and we implemented this at clientside.


Arun Patidar

Avatar

Community Advisor

@arunpatidar 

 

I don't need this to be visible for client/end user (browser). Use case is, I want to write a rewrite rule based on client country. 

Avatar

Community Advisor

HI @Anudeep_Garnepudi ,

If you have configured the dispatcher to add the `x-aem-client-country` and `x-aem-client-continent` headers, but they are not being added by the CDN, there could be a few potential reasons for this issue:

1. CDN Configuration: Ensure that your CDN is properly configured to pass through the headers specified in the dispatcher configuration. Check the CDN documentation or contact your CDN provider to verify that the headers are allowed and forwarded correctly.

2. Dispatcher Configuration: Double-check your dispatcher configuration to ensure that the headers are correctly specified. Make sure that the `clientheaders.any` file is properly included in the dispatcher configuration and that the headers are listed correctly.

3. Cache Invalidation: If the CDN is caching the responses, it's possible that the headers are not being added because the CDN is serving cached responses instead of making requests to the origin server. In this case, you may need to configure cache invalidation rules to ensure that the CDN fetches fresh content from the origin server.

4. Request Inspection: You can inspect the requests and responses using browser developer tools or tools like cURL to see if the headers are present in the requests and responses. This can help identify if the issue is with the CDN or the origin server.

5. CDN Support: Confirm with your CDN provider if they support passing through custom headers like `x-aem-client-country` and `x-aem-client-continent`. Some CDNs may have limitations on the headers they allow or require additional configuration steps.

If you have checked these points and the headers are still not being added, it may be helpful to reach out to your CDN provider or Adobe Support for further assistance. They can provide specific guidance based on your CDN and AEM configuration.

Avatar

Community Advisor

This is how we should get the header value in dispatcher.

%{HTTP:X-AEM-CLIENT-COUNTRY}

 

I was using like this %{HTTP_X-AEM-CLIENT-COUNTRY}, which didn't work.