سؤال

هنا قواعد .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'])
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top