महत्वपूर्ण: ब्राउज़र में href attribute को पूरी तरह से छिपाना असंभव है क्योंकि यह HTML का मूल भाग है। हालांकि, URL को उपयोगकर्ता से छिपाने के कई वैकल्पिक दृष्टिकोण हैं।
विधि 1: URL Rewriting (सुंदर URLs)
.htaccess या सर्वर कॉन्फ़िगरेशन का उपयोग करके:
# .htaccess RewriteEngine On RewriteRule ^item/([0-9]+)/?$ item.php?id=$1 [L,QSA]
परिणाम: yoursite.com/item/5001 (वास्तविक PHP फाइल और पैरामीटर छिपे हुए)
विधि 2: POST Request के साथ Form
<form method="post" action="process.php">
<input type="hidden" name="packageID" value="5001">
<button type="submit" class="btn-link">विवरण देखें</button>
</form>
<style>
.btn-link {
background: none;
border: none;
color: blue;
text-decoration: underline;
cursor: pointer;
padding: 0;
font: inherit;
}
</style>
विधि 3: JavaScript/AJAX (Modern Approach)
<a href="#" class="action-link" data-id="5001">कार्रवाई</a>
<script>
document.querySelectorAll('.action-link').forEach(link => {
link.addEventListener('click', function(e) {
e.preventDefault();
const id = this.dataset.id;
fetch('process.php', {
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
body: 'id=' + encodeURIComponent(id)
}).then(response => response.text())
.then(html => {
// परिणाम संभालें
});
});
});
</script>
विधि 4: Token-Based URLs (अस्थायी पहुंच)
<?php // टोकन जनरेट करें (छोटी अवधि के लिए वैध) $token = bin2hex(random_bytes(16)); $expiry = time() + 3600; // 1 घंटा // डेटाबेस/कैश में स्टोर करें // $_SESSION['tokens'][$token] = ['id' => 5001, 'expiry' => $expiry]; echo '<a href="access.php?token=' . $token . '">सुरक्षित लिंक</a>'; ?>
तुलना तालिका
| विधि | सुरक्षा | SEO | जटिलता |
|---|---|---|---|
| URL Rewriting | कम | अच्छा | कम |
| POST Form | मध्यम | खराब | कम |
| AJAX/Fetch | उच्च | खराब | मध्यम |
| Token-Based | उच्च | खराब | उच्च |