Differenza tra $ 1 vs% 1 in .htaccess

Qual è la differenza tra %1 e $1 in .htaccess?

Per esempio,

  # 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] 

Ho usato il cheat di .htaccess di Dave Child e il cheat di .htaccess di Jackol, nonché i documenti di mod_rewrite di Apache, ma l’aiuto aggiuntivo sarebbe fantastico.

%1 Si riferisce a un modello abbinato in una condizione RewriteCond , mentre $1 riferisce a un modello abbinato all’interno di un RewriteRule .

Più genericamente, usa %n per fare riferimento alle corrispondenze numerate dai pattern regex delle condizioni di RewriteCond e usa $n per riferirsi a corrispondenze numerate da modelli regex di RewriteRule .