سؤال

لقد قمت بتمكين إعادة كتابة عنوان URL على موقع PHP الخاص بي باستخدام Apache (http://example.com/index.php?param=12 يصبح http://example.com/index/param/12).

لدي بعض النماذج الموجودة في GET بدلاً من POST.

بعد إرسال النموذج، لا تتم إعادة كتابة عنوان URL الناتج.

هل من الممكن الاحتفاظ بعناوين URL المعاد كتابتها بعد إرسال نموذج GET؟

تحديث:لقد وجدت هذه المقالة حول هذا الموضوع http://matthewjamestaylor.com/blog/how-to-post-forms-to-clean-rewriter-urls لكنني لا أحب حقًا فكرة إعادة التوجيه إلى عنوان URL المعاد كتابته.هل توجد حقًا طريقة للاحتفاظ بعناوين URL المُعاد كتابتها دون إعادة التوجيه؟

التحديث 2:هنا مثال على ما أحاول القيام به.لنفترض أن لدي نموذجًا بسيطًا مثل هذا:

<form method="get" action="">
   <fieldset>
      <input type="text" name="q" />
      <input type="submit" value="Search" />
   </fieldset>
</form>

ودعنا نقول أن عنوان URL الخاص بي هو http://example.com/index/param/12

بعد تقديم نموذج GET، يصبح عنوان URL http://example.com/index/param/12?q=my-input-text, ، بينما أرغب في الحصول على عنوان URL مُعاد كتابته مثل http://example.com/index/param/12/q/my-input-text

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

المحلول

يبدو أنك تريد أن ينتقل النموذج الخاص بك مباشرةً إلى /q/my-input-text يجب عليك استخدام JavaScript لتحقيق ذلك في النموذج onSubmit.

نصائح أخرى

يقوم Apache mod_rewrite بمعالجة عناوين URL الواردة (الطلبية) فقط - ولا يتحكم في عناوين URL التي تنشئها في برامج PHP النصية الخاصة بك.هذا شيء يجب أن تعتني به بنفسك.

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