/ / URL में GET क्वेरी निकालें - .htaccess, mod-rewrite

URL में GET क्वेरी निकालें - .htaccess, mod-rewrite

मैंने एक बनाया था .htaccess वह फ़ाइल जो URL को पथ क्वेरी में रूपांतरित करती है। यह काम करता है लेकिन जब मैं कुछ इस तरह से जाता हूं: localhost/login मैंने इसे प्राप्त किया localhost/login?path=login। मैं इसे कैसे बदल सकता हूँ ताकि मैं URL में पथ न देख सकूँ

.htaccess

RewriteEngine On
RewriteCond $1 !^__init__.php
RewriteRule ^(.*)$ __init__.php?path=$1 [L,QSA]

उत्तर:

जवाब के लिए 0 № 1

कर देता है login.php एक भौतिक फ़ाइल के रूप में मौजूद है? यदि हां, तो आपको यह सुनिश्चित करने की आवश्यकता होगी MultiViews अक्षम है। अपने शीर्ष पर निम्नलिखित का प्रयास करें .htaccess फ़ाइल:

Options -MultiViews

एक फ़ोल्डर है जिसे लॉगिन कहा जाता है

आह, यही समस्या होगी। mod_dir के साथ एक बाहरी पुनर्निर्देशन के मुद्दे के साथ /login सेवा मेरे /login/ (यानी। एक अनुगामी स्लेश संलग्न करें)। चूंकि एक रीडायरेक्ट पहले ही जारी किया जा चुका है, इसलिए आपका आंतरिक पुनर्लेखन अब एक बाहरी रीडायरेक्ट (HTTP स्थिति से और) हो जाता है Location हेडर पहले ही सेट हो चुके हैं)।

आपको या तो उस निर्देशिका का नाम बदलना होगा। या mod_dir की इस सुविधा को अक्षम करें (लेकिन इससे आगे की समस्याएं हो सकती हैं) उदाहरण के लिए, अपने शीर्ष पर .htaccess फ़ाइल:

DirectorySlash Off