यह आपकी .htaccess फ़ाइल में mod_rewrite डायरेक्टिव का उपयोग करके किया जा सकता है। इसके लिए आपकी .htaccess फ़ाइल में निम्नलिखित पंक्तियां होनी चाहिए, प्रत्येक पंक्ति में एक डायरेक्टिव:
RewriteEngine On
RewriteRule ^blog/([0-9]+)/([a-z]+)$ /blog/index.php?year=$1&month=$2 [nc]
EXPLANATION:
RewriteEngine On
पहली पंक्ति सुनिश्चित करती है कि आपका RewriteEngine चालू है।
RewriteRule ^blog/([0-9]+)/([a-z]+)$ /blog/index.php?year=$1&month=$2 [nc]
दूसरी पंक्ति को इस प्रकार समझाया गया है:
^blog/ - यह सुनिश्चित करता है कि स्ट्रिंग की शुरुआत में blog से शुरू होने वाला भाग देखा जाएगा
([0-9]+) - यह 0-9 तक के अंकों की श्रृंखला खोजता है। अंत में लगा + सुनिश्चित करता है कि दोहराए गए अंक एक या अधिक बार मैच होंगे, जैसे 2007 के मामले में।
([a-z]+)$ - यह छोटे अक्षरों (lower-case) में इनपुट खोजता है। अंत में लगा + सुनिश्चित करता है कि दोहराए गए अक्षर एक या अधिक बार मैच होंगे, जैसे Tree के मामले में। इस उदाहरण में अक्षरों के केस से फ़र्क नहीं पड़ेगा, क्योंकि हमने नियम के अंत में कुछ जोड़ा है। अंत में लगा डॉलर चिह्न डायरेक्टिव को केवल पंक्ति का अंत खोजने के लिए कहता है।
/blog/index.php?year=$1&month=$2 - वेबसाइट इसी में अनुवाद करेगी, जहां $1 प्राप्त हुआ पहला इनपुट है, इस मामले में 2007, और $2 प्राप्त हुआ दूसरा इनपुट है, इस मामले में jan।
[nc] - इसका अर्थ है "no case" यानी "केस-असंवेदनशील"। नियम के अंत में इसके होने से यह फ़र्क नहीं पड़ता कि इनपुट किस केस में है। उदाहरण के लिए, http://www.example.com/blog/2007/JaN इसका व्यवहार इसके समान ही होगा http://www.example.com/blog/2007/jan.
रेगुलर एक्सप्रेशन (regex/regexp) का उपयोग करके इसे आसानी से बढ़ाया जा सकता है, ताकि अधिक सामान्य या विशिष्ट रूप में कई अलग-अलग प्रकार के इनपुट शामिल किए जा सकें। regex और उसके उपयोग के बारे में अधिक जानकारी यहां मिल सकती है:
http://www.regular-expressions.info/tutorial.html
साथ ही, mod_rewrite डायरेक्टिव के बारे में अधिक संपूर्ण जानकारी यहां मिल सकती है:
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html