Разница между $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 шаблоны регулярных выражений.

Другие вопросы по тегам