الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سوال في خاصية mod_rewrite

مغلق
بدأه asd010 في 18 يونيو 2007 · 11 رد · 972 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

شباب انا طبقت الكود هذا

RewriteRule ^products/([0-9][0-9])/$ /productInfo.php?prodId=$1

وشغال حلو لكن يطلع الرابط بدون /

واذا حطيت / تطلع الصفحه غلط ؟؟؟

ابيه يطلع صح بالحالتين كيف ؟؟

#2

لازم تنشيء الرابط بشكل صحيح، على سبيل المثال، من الأفضل استخدام هذه الطريقة في الروابط والصور وملفات css وملفات الجافا سكريبت:

<a href='<?php echo "http://".$_SERVER['HTTP_HOST']."/products/25/; '>اضغط هنا</a>

ثم أضف إلى ملف htaccess هذا الأمر

RewriteBase /

هذا الأمر يحدد من أين ينطلق الأباتش في تنفيذ الملف

يعني لو تريد أن يبدأ من مجلد معين يكون بهذا الشكل

RewriteBase /newDir/

واجعل الأمر إلى

RewriteRule ^products/([0-9][0-9])/$ productInfo.php?prodId=$1 [L]

جرب وأحبرنا ولو واجهتك مشكلة أعطنا أجزاء أكبر من الكود وسنساعدك

بالتوفيق

تم تعديل هذه المشاركة بواسطة عبدالله عيّاش في 19 يونيو 2007 في 01:48

sign3.jpg
#3

مشكور اخوي عبد الله لكن انا عندي شغال وجربت طريقتك نفس طريقتي

لكن انا ابيه بالحالتين يفتح الصفحه مع او بدون /

#5

جرب:

RewriteRule ^products/([0-9][0-9])(.*)$ productInfo.php?prodId=$1 [L]
sign3.jpg
#6

جربت اخوي باللي حطيته طلع خطا الصفحه مو موجوده وجربت هذا

RewriteRule ^products/([0-9]+)(.*)$ productInfo.php?prodId=$1 [L]

اشتغل تمام في الحالتين بس صار اذا حطيت اي رقم في الاخير يفتح نفس الصفحه مثل كذا

http://localhost/products/1/

راح تفتح الصفحه تمام وحتى لو حطيت كذا

http://localhost/products/1/54545555555555555555555555

راح تفتح نفس الصفحه ؟؟؟

#7

يصعب التحكم 100% في العنوان، سوف أعطيك مثال

لو جربت أن تدخل العنوان الأساسي بدون mod_rewrite

http://localhost/productInfo.php?prodId=1

سوف يعطيك الصفحة المطلوبة

لو كتبتك نفس العنوان السابق ولكن بإضافة كويري سترنج جديد، مثال:

http://localhost/productInfo.php?prodId=1&se=43567654

ستلاحظ أنه يعطيك نفس الصفحة تماما مع العلم أن المتغير الثاني ليس له أي دخل بالكود، هكذا الحال مع المثال اللذي أوردته فهو سيعتبر أنه شيء زائد

حتى لا أغثك بكثرة الكلام

جرب هذه الطريقة يمكن تزيد في التحكم:

RewriteRule ^products/([0-9][0-9])(/|.)$ productInfo.php?prodId=$1 [L]

جرب وأخبرنا

sign3.jpg
#8

جربت اخوي نفس الشي

#9

مع اني شفت مواقع مطبقه الطريقه بس اجنبيه

#10

جرب إحدى الطرق التالية إن شاء الله تمشي أمورك

مشكلتي اني حاليا ما أقدر أجرب على جهازي لذلك أنا أحاول أفكر في الحل وأطلب منك تجرب

بالمناسبة، هناك يكون فروقات بين كل سيرفر وآخر، وخاصة لو كنت تشتغل على ويندوز فسوف يفرق معك لو جربت على الويندوز ثم عملت أبلود على سيرفر لينكس، راح يكون هناك فرق

RewriteRule ^products/([0-9][0-9])/?$ productInfo.php?prodId=$1 [L]

أو

RewriteRule ^products/([0-9][0-9])(/)$ productInfo.php?prodId=$1 [L]

بالتوفيق

sign3.jpg
#11

مشكور اخوي عبد الله بيض الله وجهك ضبط معي الكود الاول تمام

#12

الحمد لله ان مشكلتك انحلت

ولا شكر على واجب

sign3.jpg

هذا الموضوع مغلق.

مواضيع مشابهة