كيفية تجنب تغيير العنوان في شريط العناوين في PHP

StackOverflow https://stackoverflow.com/questions/2145241

  •  23-09-2019
  •  | 
  •  

سؤال

لدي مشكلة واحدة في شريط العناوين (في المتصفح). يبدو أن عنوان URL للصفحة الرئيسية لموقع الويب الخاص بي: http://localhost/Website/index.php

إذا كتبت .../Website/home.php يقوم بتحميل home.php صفحة. أعتقد أنه ليس من الآمن إذا كان بإمكان أي شخص الذهاب إلى أي من صفحة الويب التي يريدونها إذا عرفت عنوانها. أريد منع إعادة توجيه عنوان URL التلقائي في شريط العناوين. الرجاء مساعدتي أي شخص في صنعه حتى إذا كتب شخص ما .../home.php يعالجه يعيد توجيه المتصفح إلى index.php كصفحة افتراضية.

لا يوجد حل صحيح

نصائح أخرى

المفهوم الكامل للشبكة العالمية هو أن كل مورد (على سبيل المثال كل صفحة ويب) لديه معرف موارد فريد (عنوان). إنه جزء لا يتجزأ من كيفية عمل الإنترنت ويجب أن تتوافق معها ، بدلاً من تجنبها.

تأكد من أن لديك رابطًا كبيرًا لطيفًا إلى صفحتك الرئيسية وسيستخدمه الأشخاص إذا هبطوا على صفحة مختلفة ولا يمكنهم العثور على ما يريدون.

آمل أن يساعد هذا.

باختصار: لا يمكنك فعل ذلك. كما ذكر آخرون ، PHP هو أ لغة جانب الخادم هذا يعني أنه لا يمكن التحكم في المتصفح (أي منع شخص ما لتغيير عنوان URL). اقرأ واتبع الروابط في كيف يعمل PHP؟ للتعرف على الفرق بين جانب الخادم واللغات الجانبية للعميل.

مقالات ويكيبيدا شبكة الانترنت, محدد الموارد الموحد (URL) و قاعدة بيانات للانترنت يمكن أن يكون من المثير للاهتمام أيضًا أن تحصل على فهم أساسي لكيفية عمل WWW وما يدور حول عناوين URL.

ولكن يمكنك التحكم في الملفات التي يمكن الوصول إليها. هناك طريقتان:

تكوين خادم الويب

يتيح لك معظم خادم الويب (كل؟) تكوين القواعد للتحكم في الملفات التي يجب الوصول إليها (AKA Control Control). لها مثال على كيفية القيام بذلك مع Apache Web Server.

PHP: وحدة التحكم الأمامية

يمكنك أيضًا القيام بذلك باستخدام PHP مباشرة (وتكوين خادم ويب صغير). الكلمة الرئيسية السحرية هي هي نمط وحدة التحكم الأمامية. هذا على سبيل المثال فئة تعمل كنقطة دخول واحدة إلى التطبيق الخاص بك. هذا يعني أن كل طلب على سبيل المثال

 http://localhost/Website/home.php

أو

http://localhost/Website/foo/bar.php

تم إعادة توجيهه (مع إعادة توجيهه ، ومع ذلك تريد تسميته) إلى معالجته بواسطة

 http://localhost/Website/index.php

لذلك في النهاية ، يمكنك ويجب أن تقرر المحتوى الذي يمكن للمستخدم معرفة ما إذا كان يحاول الوصول إلى عنوان URL معين.
يمنحك هذا المزيد من التحكم في عناوين URL (نظرة) ولكن عليك بذل المزيد من الجهد في تكوينه.

إذا كنت مهتمًا بكيفية عمل هذا ، أقترح إلقاء نظرة على Zend Framework الذي ينفذ هذا النمط.

سؤال مفتوح...

على الرغم من أنك تستطيع افعل هذا ، والسؤال هو ما إذا كان عليك القيام بذلك. إذا كنت لا تريد home.php لتكون في متناول اليد ، لماذا تضعه على خادم الويب الخاص بك في المقام الأول؟

أو ربما لديك صورة خاطئة لهيكل موقع ويب في رأسك. أ غير متزوج موقع الويب يتكون من مضاعف الصفحات (معظم الأوقات) ، على سبيل المثال

index.php   // is the main page
about.php   // is about the site or you
news.php    // contains the latest news you provide
archive.php // older news or articles
...

حتى أنه من المطلوب أن يتمكن المستخدم / الزائر من الوصول إلى هذه الصفحات مباشرة عن طريق إدخال عنوان URL في شريط العناوين أو عبر إشارة مرجعية. هذه هي الطريقة التي يعمل بها موقع ويب أو شبكة الاتصالات العالمية.

PHP لا يمكن أن تفعل ذلك ؛ إنها تقنية من جانب الخادم وبالتالي لا يمكن تعديل سلوك المتصفح. ببساطة لا تضع أي ملفات أخرى في الدليل وسيقوم المتصفح بإبلاغ المستخدم بعدم وجود مثل هذا الملف عندما يحاولون التنقل إليه.

يمكنك الحصول على هذه النتيجة حتى بدون إطارات. إذا كنت تستخدم JavaScript و Ajax لتحميل المحتوى الخاص بك بشكل ديناميكي ، فلن يتغير عنوان URL الخاص بك.

على الرغم من أنني لا أوصي بهذا أبدًا من أجل Googles ، فستكون هذه الطريقة اللطيفة للقيام بذلك وما زلت تعمل بشكل جيد مع PHP

أود أن آخذ نصيحة Sohnee ، ولكن إذا كنت تريد حقًا إنشاء الوهم باستخدام إطارات HTML.

وأنا أتفق مع الإجابات المنشورة مؤخرًا.

ولكن إذا كنت لا تحتاج HTML يمكنك الذهاب إلى FLASH أو Java Applet, ، بمجرد تحميلها ، لم تعد عناوين URL الخاصة بك تتغير.

شيء غريب تريد أن تفعل ولكن أ بسيط الطريق (وليس جيدًا لأي شيء سوى المواقع الصغيرة) هو استخدام رأس (الموقع: xxxx).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top