Apache: إعادة كتابة إلغاء إزالة DOT زائدة
-
19-09-2019 - |
سؤال
هنا قواعد .htaccess الخاصة بي:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*)/(.*)$ index.php?var1=$1&item=$2&var2=%{REQUEST_URI} [NC,L]
RewriteRule ^(.*)$ index.php?var1=$1 [NC]
فيما يلي عنوان URL (مع نقطة زائدة في النهاية):http://localhost/test/secondvar.
المشكلة هي أن النقطة الزائدة لا تأتي داخل var2
GET
عامل
لقد استخدمت أ print_r($_GET)
وهنا هي النتيجة مع عنوان URL أعلاه:
صفيف ([var1] => اختبار [var2] => secondvar [uri] => / test / secondvar.)
لذلك سؤالي هو، كيف يمكنني الحصول على نقطة زائدة من عنوان URL كمعلمة إلى VAR؟ كما ترون، REQUEST_URI
يظهر أن أباتشي يعرف النقطة.
أعلم أنني لا أستطيع إرسال المسارات كما GET
المعلمات والعناية بقراءة المسارات في URI من PHP، ولكن أود أن أعرف لماذا لا تأتي النقطة وكيفية إصلاحه، إذا كان معقدا جدا، فأنا أذهب إلى حل PHP المباشر.
تحرير: ليس فقط نقطة زائدة ولكن زائدة؟ أيضا ... = [
المحلول
قد يكون هذا هو أن PHP يستبعد النقاط الزائدة. أعلم أنهم غالبا ما يقومون بتحويل DOT في Post / Get Inferscores. سأفعل فقط
explode('/',$_SERVER['REQUEST_URI'])
لا تنتمي إلى StackOverflow