لماذا يقوم modRewrite بتطبيق .php التلقائي على هذه القاعدة البسيطة؟
-
03-07-2019 - |
سؤال
حسنًا يا رفاق، ربما لدي مشكلة غبية، ولكن ربما أكون غبيًا :)
لدي هذا .htaccess البسيط:
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^news/([^/]+)$ news-inside.php?n=$1 [L]
RewriteRule ^news/?$ news.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
في كل مرة أحاول الدخول إلى القاعدة الأولى عن طريق كتابة بعض عناوين URL مثل هذه:
تتم إعادة توجيهي إلى الملف news.php، وليس إلى news-inside.php باستخدام سلسلة الاستعلام!
بالنظر إلى $_GET و$_SERVER للصفحة التي تم الوصول إليها، هذه هي النتيجة:
$_GET => empty
$_SERVER (some)
'REQUEST_METHOD' => string 'GET' (length=3)
'QUERY_STRING' => string '' (length=0)
'REQUEST_URI' => string '/news/something' (length=15)
'SCRIPT_NAME' => string '/news.php' (length=9)
'PATH_INFO' => string '/something' (length=10)
'PATH_TRANSLATED' => string '/var/www/rolo/something' (length=23)
'PHP_SELF' => string '/news.php/something' (length=19)
أيه أفكار؟؟
المحلول
حاول تعطيل MultiViews
:
Options -MultiViews
لا تنتمي إلى StackOverflow