Разница между $1 и%1 в.htaccess
В чем разница между %1
а также $1
в.htaccess?
Например,
# to remove www
RewriteCond %{HTTP_HOST} ^(\w+)\.mydomain\.com [NC]
RewriteRule .* http://mydomain.com/%1 [R=301,L]
# versus
# RewriteRule .* http://mydomain.com/$1 [R=301,L]
Я использовал шпаргалку Дейва Чайлда.htaccess и шпаргалку Джекола.htaccess, а также документы Apache mod_rewrite, но дополнительная помощь была бы полезна.
1 ответ
Решение
%1
Относится к шаблону, сопоставленному в RewriteCond
состояние, в то время как $1
относится к шаблону, сопоставленному внутри RewriteRule
,
В более общем смысле, используйте %n
ссылаться на пронумерованные совпадения из RewriteCond
шаблоны регулярных выражений и использование $n
ссылаться на пронумерованные совпадения из RewriteRule
шаблоны регулярных выражений.