Разница между $ 1 и% 1 в .htaccess - PullRequest
33 голосов
/ 11 июля 2011

В чем разница между %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 docs , но дополнительная помощь была бы полезна .

1 Ответ

52 голосов
/ 11 июля 2011

%1 Относится к шаблону, сопоставленному в условии RewriteCond, тогда как $1 относится к шаблону, сопоставленному внутри RewriteRule.

В более общем смысле используйте %n для ссылки на пронумерованные совпадения из RewriteCond шаблонов регулярных выражений и используйте $n для ссылки на пронумерованные совпадения из RewriteRule шаблонов регулярных выражений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...