Как добавить к условию .htaccess, как это?

Нужно добавить в условие .htaccess вот так:

if (page == '/admin') {
Header add Test "test"}

Это не работает:

<IfModule mod_headers.c>
<If "%{REQUEST_URI} == '/'">
Header add Test "test"</If>
</IfModule>

Но это работает на всех страницах (логично):

<IfModule mod_headers.c>
Header add Test "test"</IfModule>

Я знаю о env = [!] Varname, но не знаю, как использовать в моем случае ..

Буду рад любой помощи!

0

Решение

Директива

<IfModule mod_headers.c>
<If "%{REQUEST_URI} == '/admin'">
Header add Test test
</If>
</IfModule>

правильно и заголовок будет добавлен, если запрос не изменен на своем пути.


Например, если у вас есть

<IfModule mod_headers.c>
<If "%{REQUEST_URI} == '/admin'">
Header add Test test
</If>
</IfModule>

RewriteEngine on
RewriteRule ^admin$ /index.php [L]

заголовок не будет установлен, потому что запрос изменен и будет распознан как /index.php вместо. Чтобы заголовок был установлен в ответе, вы должны изменить его на

<IfModule mod_headers.c>
<If "%{REQUEST_URI} == '/index.php'">
Header add Test test
</If>
</IfModule>

RewriteEngine on
RewriteRule ^admin$ /index.php [L]

Теперь просьба /admin будет переписан в /index.phpи REQUEST_URI обрабатывается как «/index.php», а заголовок устанавливается непосредственно перед отправкой ответа клиенту, см. mod_headers — Ранняя и поздняя обработка

Нормальный режим задерживается, когда заголовки запроса устанавливаются непосредственно перед запуском генератора контента и заголовков ответа, так же как ответ отправляется по проводам. Всегда используйте поздний режим на рабочем сервере.


Таким образом, в зависимости от того, как запросы обрабатываются и изменяются в вашей среде, вы также должны изменить условие <If "%{REQUEST_URI} == '...'"> к тому, что вписывается в вашу среду.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]