{"id":83493,"date":"2019-02-25T14:39:50","date_gmt":"2019-02-25T14:39:50","guid":{"rendered":"https:\/\/br.wordpress.org\/support\/?post_type=topic&#038;p=83493"},"modified":"2019-11-12T20:18:22","modified_gmt":"2019-11-12T20:18:22","slug":"header-condicional-com-base-em-request_uri-no-wordpress","status":"publish","type":"topic","link":"https:\/\/br.wordpress.org\/support\/topic\/header-condicional-com-base-em-request_uri-no-wordpress\/","title":{"rendered":"Header condicional com base em REQUEST_URI no WordPress"},"content":{"rendered":"<p>Ol\u00e1, amigos,<\/p>\n<p>Estou tentando inserir headers HTTP condicionais com base no subdiret\u00f3rio informado pela vari\u00e1vel REQUEST_URI. <\/p>\n<p>O primeiro objetivo \u00e9 distinguir a homepage das demais p\u00e1ginas do site, com base no seguinte c\u00f3digo no .htaccess:<\/p>\n<pre><code>SetEnvIf Request_URI &quot;^\/$&quot; is_homepage\nHeader set a-homepage &quot;Homepage&quot; env=is_homepage\nHeader set a-not_homepage &quot;N\u00e3o \u00e9 homepage&quot; env=!is_homepage<\/code><\/pre>\n<p>Para distinguir subdiret\u00f3rios espec\u00edficos (no exemplo abaixo, <code>\/en\/<\/code> e <code>\/es\/<\/code>), eu usei o seguinte no .htaccess:<\/p>\n<pre><code>SetEnvIfNoCase Request_URI &quot;^\/(es|en)\/$&quot; is_directory\nHeader set a-directory &quot;Subdiret\u00f3rios \/es\/ ou \/en\/&quot; env=is_directory<\/code><\/pre>\n<p>Para distinguir homepage OU subdiret\u00f3rios, criei outra vari\u00e1vel usando express\u00e3o regular:<\/p>\n<pre><code>SetEnvIfNoCase Request_URI &quot;^\/(es\/|en\/)?$&quot; is_home_dir\nHeader set a-homepage_dir &quot;Homepage OU subdiret\u00f3rios escolhidos&quot; env=is_home_dir<\/code><\/pre>\n<p>Por fim criei este header para ter certeza de que o REQUEST_URI retornado era o desejado (e n\u00e3o &#8220;\/index.php&#8221;, por exemplo)<\/p>\n<pre><code>SetEnvIfNoCase Request_URI &quot;^(.*)$&quot; REQUEST_URI=$1\nHeader set a-uri &quot;%{REQUEST_URI}e&quot;<\/code><\/pre>\n<p>Tudo funcionou como previsto num teste com site est\u00e1tico em HTML. Reparem que o header &#8220;a-homepage-dir&#8221; baseado na express\u00e3o regular acima aparece tanto na homepage quanto no diret\u00f3rios especificados, mas n\u00e3o em outros URLs do site. <\/p>\n<p><a href=\"https:\/\/encantarse.com\/\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/encantarse.com\/<\/a>         [aqui aparece o header a-homepage e o a-home-dir]<br \/>\n<a href=\"https:\/\/encantarse.com\/en\/\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/encantarse.com\/en\/<\/a>      [aqui aparece o header a-not_homepage e o header a-home-dir]<br \/>\n<a href=\"https:\/\/encantarse.com\/es\/nice-post.html\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/encantarse.com\/es\/nice-post.html<\/a>  [aqui aparece o header a-not_homepage]<\/p>\n<p>Quando usei os mesmos headers condicionais num site &lt;b&gt;WordPress&lt;\/b&gt;, tudo funcionou &lt;b&gt;exceto o header&lt;\/b&gt; com base na express\u00e3o regular para incluir tanto a homepage quanto alguns subdiret\u00f3rios:<\/p>\n<p><a href=\"https:\/\/aptonocentro.com\/\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/aptonocentro.com\/<\/a>   [aqui aparece o header a-homepage, mas n\u00e3o o a-home-dir]<br \/>\n<a href=\"https:\/\/aptonocentro.com\/en\/\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/aptonocentro.com\/en\/<\/a>   [aqui aparece o header a-not_homepage, mas n\u00e3o o a-home-dir]<br \/>\n<a href=\"https:\/\/aptonocentro.com\/es\/subdirectorio-espanol\/\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/aptonocentro.com\/es\/subdirectorio-espanol\/<\/a>  [aqui aparece o header a-not_homepage]<\/p>\n<p>Reparem que em todos os casos aparece o header a-uri, com a uri repassada pelo Request_URI. <\/p>\n<p>Porque isso est\u00e1 acontecendo com o site WordPress? O que eu preciso fazer esse header condicional funcionar no WordPress?<\/p>\n","protected":false},"template":"","class_list":["post-83493","topic","type-topic","status-publish","hentry","topic-tag-header-condicional","topic-tag-header-http","topic-tag-htaccess"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/br.wordpress.org\/support\/wp-json\/wp\/v2\/topic\/83493","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/br.wordpress.org\/support\/wp-json\/wp\/v2\/topic"}],"about":[{"href":"https:\/\/br.wordpress.org\/support\/wp-json\/wp\/v2\/types\/topic"}],"version-history":[{"count":1,"href":"https:\/\/br.wordpress.org\/support\/wp-json\/wp\/v2\/topic\/83493\/revisions"}],"predecessor-version":[{"id":83494,"href":"https:\/\/br.wordpress.org\/support\/wp-json\/wp\/v2\/topic\/83493\/revisions\/83494"}],"wp:attachment":[{"href":"https:\/\/br.wordpress.org\/support\/wp-json\/wp\/v2\/media?parent=83493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}