निश्चित रूप से यह संभव है, एक PHP स्क्रिप्ट के लिए आपका .htaccess कुछ इस तरह दिख सकता है:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
यह निर्देशिका या फ़ाइल नामों को छोड़कर सभी URL को "index.php?url=THE-TYPED-ADDRESS" पर फिर से लिख देगा।
फिर आप अपने index.php में आईडी निर्धारित करने के लिए $_GET['url'] के मान का उपयोग कर सकते हैं:
// init DB layer
if (isset($_GET['url']) && !empty($_GET['url'])) {
$url = my_filter_function($_GET['url']); // filter input
$pdo = my_get_pdo_function(); // get configured PDO objected
$query = "SELECT id FROM my_router_table WHERE url = ? LIMIT 1"; // use prepared statements for security/performance reasons
$stmt = $pdo->prepare($query);
$stmt->bindValue(1, $url, PDO::PARAM_STR); // bind the value as a string
// ternary operator expanded for readability
if ($stmt->execute()) {
$id = $stmt->fetch(PDO::FETCH_ASSOC);
} else {
$id = -1; // 404 page
}
// fetch content/render page according to ID
}
यह स्पष्ट रूप से एक अत्यधिक सरलीकृत उदाहरण है और आपको वास्तव में यह सुनिश्चित करना चाहिए कि आप अपने इनपुट से ठीक से बच जाएं और सुरक्षा जोखिमों से बचने के लिए तैयार बयानों का उपयोग करें। साथ ही, यदि आप MySQLi या किसी अन्य डेटाबेस एक्सेस लेयर का उपयोग करते हैं तो आपका तैयार/निष्पादित/प्राप्त कोड थोड़ा भिन्न होगा।