Могу ли я получить соответствующую переменную в htaccess RewriteCond?

#apache #.htaccess #mod-rewrite

#apache #.htaccess #мод-перезапись

Вопрос:

Как я могу получить доступ к соответствующей переменной в правиле a, подобном этому?

 RewriteCond %{HTTP_REFERER} ^http://example.com/dir[0-9]/?(.*)?$
RewriteRule ^images/(.*)$ other_dir(MATCHED_STRING)/images/$1 [L]
 

Я хотел бы URL: http://example.com/dir1
чтобы перенаправить все его изображения в /other_dir1/images/$1

Ответ №1:

Используйте % для доступа к обратным ссылкам из перезаписываемой секунды. Итак, в вашем примере:

 RewriteCond %{HTTP_REFERER} ^http://example.com/dir[0-9]/?(.*)?$
RewriteRule ^images/(.*)$ other_dir%1/images/$1 [L]
 

%1 Она будет заменена на ту, которая была сопоставлена в RewriteCond в HTTP-реферере.