2011-07-11 12 views
22

में $ 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] 

मैं Dave Child's .htaccess cheat sheet और Jackol's .htaccess cheat sheet के साथ-साथ Apache mod_rewrite docs लेकिन अतिरिक्त मदद का उपयोग किया गया बहुत अच्छा होगा।

+5

'mod_rewrite' दस्तावेज़ कहते हैं कि'% एन' बैकरेक्शंस रीवाइटकंड पैटर्न के लिए हैं जबकि '$ एन' बैकरेफर रेवाइटरूल पैटर्न के लिए हैं। – BoltClock

उत्तर

40

%1, एक पैटर्न एक RewriteCond हालत में मिलान को संदर्भित करता है, जबकि $1 एक पैटर्न एक RewriteRule अंदर मिलान किया जाता है।

अधिक सामान्य रूप से, %n का उपयोग RewriteCond हालत regex पैटर्न से गिने मैचों का उल्लेख करने के लिए, और $n का उपयोग RewriteRule regex पैटर्न से गिने मैचों का उल्लेख करने के।