Что значит e в htaccess?

Я хочу добавить каноническую ссылку без параметров ко всем параметризованным URL-адресам. Я пытаюсь сделать это следующим образом:

<IfModule mod_rewrite.c>

### Catching all URLs with non-empty parameter ###
    RewriteCond %{QUERY_STRING} . 

### Adding to all parametrized URLs an environment variable ###
    RewriteRule .* : [E=MY_HEAD:1]

</IfModule>

<IfModule mod_headers.c>

### Setting a non-parametrized URL as canonical to all URLs with an environment variable
    Header set Link '%{HTTP_HOST}%{REQUEST_URI}e; rel="canonical"' env=MY_HEAD

</IfModule>

Мой вопрос: в поисках примеров я нашел результаты с e после {REQUEST_URI} и без них. Что означает этот e в данном контексте?


person Evgeniy    schedule 05.12.2018    source источник


Ответы (2)


Модификатор регулярного выражения e в PHP.

Модификатор e является устаревшим модификатором регулярного выражения, который позволяет вам использовать PHP-код в вашем регулярном выражении. Это означает, что все, что вы анализируете, будет оцениваться как часть вашей программы.

а также вы можете сослаться на это

person Harsh Shah    schedule 05.12.2018
comment
Значит ли это, что этот код не работает без e и примеры без него ошибочны? - person Evgeniy; 05.12.2018

e — это синтаксис, используемый mod_headers для ссылки на переменную окружения:

https://httpd.apache.org/docs/current/mod/mod_headers.html#Header

%{VARNAME}e Содержимое переменной среды VARNAME.


Примечание. Я знаю, что это старый вопрос, но у меня был тот же вопрос, и ответ PHP не имеет отношения к htaccess.

person chris    schedule 19.02.2021