بيلونات / طرق إعادة كتابة آخر أو الحصول على عنوان URL الفاخرة

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

  •  11-09-2019
  •  | 
  •  

سؤال

السلوك أقترحه:

يقوم المستخدم بتحميل صفحة "البحث" الخاص بي، www.site.com/search، وأنواع استعلامها في نموذج، والنقر فوق إرسالها، ثم ينتهي بعد ذلك في www.site.com/search/the++query بدلا من www.site. كوم / بحث؟ س = الاستعلام +. لقد مررت بالكثير من وثائق الأبراج بالفعل وقد انتهيت للتو من قراءة وثائق الطرق وأتساءل عما إذا كان هذا يمكن / يجب أن يحدث في طبقة الطرق. لقد قمت بالفعل بإعداد طلبي لأداء البحث عند إعطاء www.site.com/search/the++ery، ولكن لا يمكن معرفة كيفية إرسال نموذج لهذه الوجهة.

أو هل هذا شيء يجب أن يحدث داخل وحدة تحكم مع Redirect_To ()؟

أو في مكان آخر؟

متابعة:

هذا أقل "مجموعة من الحجر" الفعلي الآن وأكثر فضولا للحصول على ميزات العصف الذهني في المستقبل. أقوم بتصميم تطبيق يستخدم تفريغ ويكيبيديا وقد لاحظ أنه عندما يقوم المستخدم بإجراء عملية بحث على Wikipedia والبحث غير غامض للغاية يعيد توجيهه مباشرة إلى رابط مقال: en.wikipedia.org/wiki/apple. يقوم بالفعل بإجراء خطوة إعادة توجيه HTTP 302، وأنا فضولي فقط إذا كانت هناك طريقة أكثر أناقة / لطيف للقيام بذلك في الألب.

هل كانت مفيدة؟

المحلول

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

في التعامل مع /search (سواء، ما اذا POST أو GET)، من شأنه عادة تشغيل الاستعلام في النهاية الخلفية، وإذا كانت هناك نتيجة بحث واحدة فقط (أو إحدى النتيجة ذات الصلة بأغلبية ساحقة)، فسوف تعيد توجيه هذه النتيجة، وإلا يتم عرضها إلى صفحة تظهر روابط إلى أعلى نتائج. هذه مجرد ممارسة طبيعية، afaik.

نصائح أخرى

تم تصميم نماذج HTML للانتقال إلى عنوان URL محدد مع سلسلة استعلام (?q=) أو هيئة ما يعادلها في POST - إما أن تكتب جافا سكريبت ذكي وخفي لاعتراض تقديم النموذج وإعادة كتابةها بطريقة غريبة المفضلة لديك، أو استخدامها redirect_to (والأخير سوف يستغرق بعض القيام به).

ولكن لماذا تحتاج إلى هذا السلوك الغريب بدلا من مجرد اتباع المعيار؟! يرجى توضيح حالة استخدامك من حيث احتياجات مستوى التطبيق ...!

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