2017-01-30 2 views
0

Требуется добавить в .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, но не знаю, как использовать в моем случае.

I будем рады любой помощи!

+0

Я хочу изменить свои заголовки на специальной странице – wagwandude

ответ

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 - Early and Late Processing

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


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

Смежные вопросы