2009-02-12 10 views
18

मुझे इसे फिर से लिखने के लिए निम्नलिखित पुनर्लेखन नियमों को करने की क्या ज़रूरत है ताकि यह यूआरएल के अंत में स्लैश हो या नहीं?.htaccess स्लैश के साथ या बिना

यानी। http://mydomain.com/content/featured या http://mydomain.com/content/featured/

RewriteRule ^content/featured/ /content/today.html 

उत्तर

33

स्ट्रिंग के अंत चिह्नित करने के लिए $ का प्रयोग करें और ? चिह्नित करने के लिए पूर्ववर्ती अभिव्यक्ति शून्य या एक बार दोहराया जा रहे हैं:

RewriteRule ^content/featured/?$ content/today.html 

लेकिन मैं आपको सलाह देते हैं एक नोटेशन और सही गलत वर्तनी से चिपकने के लिए:

# remove trailing slashes 
RewriteRule (.*)/$ $1 [L,R=301] 

# add trailing slashes 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .*[^/]$ $0/ [L,R=301] 
+0

अधिकतर अतिरिक्त जानकारी के लिए +1, हालांकि मैं इसे आपको वैसे भी देना चाहता था। – UnkwnTech

+1

$ 0/क्या करता है? –

+1

@ जेन्सटोरनेल '$ 0' में पूरी मिलान वाली स्ट्रिंग शामिल है। – Gumbo

3

ऐसा करने का सरल तरीका:

RewriteEngine On 
RewriteBase/
RewriteRule ^content/featured(\/||)$ /content/today.html [L,R=301,NC] 
संबंधित मुद्दे