Условный заголовок с .htaccess работает на HTML, но не на WordPress - PullRequest
0 голосов
/ 28 февраля 2019

Я не разработчик, но мне нужен собственный сайт.Сайт доступен на трех языках.Домашняя страница для каждого языка:

/ Portuguese /es/ Spanish /en/ English

Я хочу установить заголовок, который будет использоваться для этих трех URI, но не для других страниц сайта.Я придумал группу правил для установки условных заголовков, которые отлично работают на тестовом сайте HTML, но не на WordPress:

# All pages
SetEnvIf Request_URI "^(.*)$" REQUEST_URI=$1
Header set a-URI "%{REQUEST_URI}e"
# Conditional headers
# Is homepage?
SetEnvIf Request_URI "^/$" is_homepage
Header set aa-homepage "Yes" env=is_homepage
Header set aa-homepage "No" env=!is_homepage
# Is homepage OR either /es/ or /en/ subdir
SetEnvIf Request_URI /(es/|en/)?$ is_home_dir
Header set aa-homepage_dir "Yes" env=is_home_dir
Header set aa-homepage_dir "No" env=!is_home_dir
# Is either /es/ or /en/?
SetEnvIf Request_URI "^(es|en)$/" is_es_en
Header set aa-dir_es_en "Yes" env=is_es_en
Header set aa-dir_es_en "No" env=!is_es_en

Когда я захожу на / на моем веб-сайте WordPress, я получаю следующеезаголовки:

a-uri: /
aa-dir_es_en: No
aa-homepage: Yes
aa-homepage_dir: Yes

Правильно интерпретирует правило для заголовка aa-homepage_dir.Но когда я перехожу на /es/, я получаю это:

a-uri: /es/
aa-dir_es_en: No
aa-homepage: No
aa-homepage_dir: No

Хотя REQUEST_URI правильно сообщается как /es/, на веб-сайте WordPress оно не сопоставляется с регулярным выражением для *Заголовки 1019 * и aa-homepage_dir.

Буду признателен, если кто-нибудь укажет на мою ошибку в выполнении этой работы.Кстати, я пробовал эти правила как до, так и после основных правил WordPress .htaccess.

1 Ответ

0 голосов
/ 01 марта 2019

Я решил эту головоломку, используя THE_REQUEST вместо REQUEST_URI:

<If "%{THE_REQUEST} =~ m#\s/+(/?|en/?|es/?)[?\s]#"> 
Header set CustomHeader "header value"
</If>

Благодаря анубхава за ответ на аналогичный вопрос:

https://stackoverflow.com/a/42791714/8183887

Я до сих пор не понимаю, почему REQUEST_URI не работает в этой ситуации, но по крайней мере у меня работает условный заголовок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...