اذهب إلى المحتوى
  • 0

كيف يمكنني استعادة نفس نتائج العرض بعد التعديل على قواعد RewriteRule في ملف .htaccess ؟

Ahmed Mosalam

السؤال

السلام عليكم 

يتم عادة عرض المواضيع ذات الصلة في صفحة الموضوع , و هذا الذي كان يحدث عندي بشكل طبيعي .

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

و للعلم فإني قد  استخدمت $_GET لجلب المواضيع التي هي من نفس فئة الموضوع الحالي .


قد حاولت البحث كثيرا عن حل لهذه المشكلة ولم اجد , ارجو المساعدة من اصحاب الخبرة و شكرا مسبقا لكم ..  

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

و عليكم السلام , هلا قمت بالتفصيل أكثر فيما تقصده بـ "تصغير رابط المواضيع بالموقع بإستخدام ملف htaccess. " ؟ كما أن مشكلتك غير واضحة جيدا , يرجى التفصيل أكثر 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1
بتاريخ 1 دقيقة مضت قال Ahmed Mosalam:

الرابط يكون بهذا الشكل للموضوع "post.php?id=$1&&category=$2" واصبح بهذا الشكل "post/$1/$2" بعد استخدامي لاكواد RewriteRule في ملف .htaccess 

لكن عند استخدامي للرابط الجديد لا تظهر المواضيع ذات الصلة "المواضيع التي تكون من نفس الفئة" بنهاية الموضوع

واعتذر على عدم توضيح المشكلة بشكل جيد.

يحتمل أن ذلك بسبب طريقة قراءة معرف المقالة و الفئة من الرابط من الواجهة الخلفية . 

خصوصا و أنك ذكرت أنك تقوم بإستعمال $_GET لجلب ذلك . 

و كأن الأمر على هاته الشاكلة : 

$targetCategory = $_GET['category']; # جلب الفئة المستهدفة من الرابط

ثم كتابة إستعلام لجلب المقالات ذات نفس الفئة : 

$query = 'SELECT * FROM articles WHERE category_id=' . $targetCategory;

ما الذي يحدث هنا ؟

في حالة غياب الفئة  => لن يتم إعادة أي نتائج من الإستعلام => بالتالي فإنه في حالة عدم توفير معرف للمقالة في الرابط فإنه لن يتم إظهار أي مواضيع ذات صلة , و في الأغلب هذا الذي حدث معك. 

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

إن لم تمتلك أي خبرة تقنية , يمكنك الإستعانة بمبرمج ما لتعديل طريقة القراءة وفق ما هو أنسب لك , وفق ما يلبي حاجتك .

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 1 دقيقة مضت قال Adnane Kadri:

و عليكم السلام , هلا قمت بالتفصيل أكثر فيما تقصده بـ "تصغير رابط المواضيع بالموقع بإستخدام ملف htaccess. " ؟ كما أن مشكلتك غير واضحة جيدا , يرجى التفصيل أكثر 

الرابط يكون بهذا الشكل للموضوع "post.php?id=$1&&category=$2" واصبح بهذا الشكل "post/$1/$2" بعد استخدامي لاكواد RewriteRule في ملف .htaccess 

لكن عند استخدامي للرابط الجديد لا تظهر المواضيع ذات الصلة "المواضيع التي تكون من نفس الفئة" بنهاية الموضوع

واعتذر على عدم توضيح المشكلة بشكل جيد.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 7 دقائق مضت قال Adnane Kadri:

يحتمل أن ذلك بسبب طريقة قراءة معرف المقالة و الفئة من الرابط من الواجهة الخلفية . 

خصوصا و أنك ذكرت أنك تقوم بإستعمال $_GET لجلب ذلك . 

و كأن الأمر على هاته الشاكلة : 


$targetCategory = $_GET['category']; # جلب الفئة المستهدفة من الرابط

ثم كتابة إستعلام لجلب المقالات ذات نفس الفئة : 


$query = 'SELECT * FROM articles WHERE category_id=' . $targetCategory;

ما الذي يحدث هنا ؟

في حالة غياب الفئة  => لن يتم إعادة أي نتائج من الإستعلام => بالتالي فإنه في حالة عدم توفير معرف للمقالة في الرابط فإنه لن يتم إظهار أي مواضيع ذات صلة , و في الأغلب هذا الذي حدث معك. 

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

إن لم تمتلك أي خبرة تقنية , يمكنك الإستعانة بمبرمج ما لتعديل طريقة القراءة وفق ما هو أنسب لك , وفق ما يلبي حاجتك .

بالظبط هذا ما حدث معي، حسنا اخي سأسمع بنصيحتك، شكرا لك على الاهتمام والرد. 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 2 ساعات قال Ahmed Mosalam:

الرابط يكون بهذا الشكل للموضوع "post.php?id=$1&&category=$2" واصبح بهذا الشكل "post/$1/$2" بعد استخدامي لاكواد RewriteRule في ملف .htaccess 

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

حاول الطريقة التالية كمثال

.htaccess

RewriteEngine On
RewriteRule ^brand/([^/]*)/$ /brand.php?brand=$1 [L]

وفي HTML ستكون 

html

<a href="/brand/audi/">audi</a>

 

مثال آخر:

The original URL:
http://www.domain.com/shop.php?category=vehicles&product=bus
The rewritten URL:
http://www.domain.com/vehicles/bus.html


=.

RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)\.html$ /shop.php?category=$1&product=$2 [L]

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...