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

إعادة كتابة الروابط في ملف htaccess

ناnaif ناnaif

السؤال

بسم الله الرحمن الرحيم

السلام عليكوم ورحمة و بركاتة

لدي استفسار في تعديل الروابط الخاصة بالموقع حيث ان لدي صفحة page.php?id=الاستعلام

اوريد تعديل الرابط بحيث يكون هكذا page-الاستعلام.html

لقد بحثت و وجت ان هناك كود في ملف htaccess و لا اعرف هذا الكود

هل من احد يعطيني الكود

ارجو الرد 

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0
بتاريخ 10 دقائق مضت قال naif:

لماذا لا يوجد رد 

هلا اخى .

بتاريخ منذ ساعة مضت قال محمد_عاطف:

واذا اردت تغير صفحات اخرى ستقوم فقط كلمة page بكلمة post مثلا فى السطرين الاخرين بعد ان تقوم بنسخهمها .

كما اخبرتك سابقا يمكنك تعديل اى صفحة كما تشاء فقط قم بتغير القاعدة الخاصة فى ملف htaccess . وقد قمت بتعديل الملف ليتناسب مع هذه الروابط.

بتاريخ منذ ساعة مضت قال naif:

post.php?p=الإستعلام     اوريد التعديل إلى    post-الإستعلام.html

بتاريخ منذ ساعة مضت قال naif:

profile.php?u=الإستعلام     اوريد التعديل إلى    profile-الإستعلام.html

بتاريخ منذ ساعة مضت قال naif:

page.php?id=الإستعلام     اوريد التعديل إلى    page-الإستعلام.html

.htaccess

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

  • 0

عليك كتابة الإعدادات التالية في .htaccess

RewriteEngine On
RewriteCond %{QUERY_STRING} id=(.*)
RewriteRule ^page.php$ /page-%1.html? [R=301,L]

وذك لتحويل الروابط من page.php?id=الاستعلام إلى page-الاستعلام.html بشكل تلقائي.

لكن عليك توضيح ما تريده بالضبط لتوفير إعداد أفضل، فإعدادات htaccess ستسبب لك مشكلة في حال كانت غير مناسبة لما تريد تنفيذه.

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

  • 0

لتعديل الروابط يمكن استخدام ملف .htaccess لتحويل لتحويل الرابط "page.php?id= الاستعلام" إلى "page-الاستعلام.html" يمكن أولا، البدء بتفعيل محرك الإعادة الكتابة (Rewrite Engine) من خلال هذا الأمر:

 RewriteEngine On

بعدها يمكنك كتابة القاعدة لإعادة الكتابة (Rewrite Rule)من خلال هذين الأمرين:

   RewriteCond %{QUERY_STRING} id=(.*)
   RewriteRule ^page.php$ /page-%1.html? [R=301,L]

وهذه القاعدة تحدد أنه إذا كانت السلسلة الاستعلامية تحتوي على متغير "id"، ستتم إعادة الكتابة لتكون بتنسيق "page-الاستعلام.html" بواسطة الرابط "page.php".

بعدها مباشرة تقوم بتوجيه الزوار إلى الرابط الجديد، فهنا يتم استخدام `R=301` لإعادة توجيه الزوار إلى الرابط الجديد بواسطة إعادة توجيه دائمة (301 Redirect)، و `L` تحدد أن هذه هي آخر قاعدة إعادة كتابة ستتم تطبيقها.

وهذا مثال عملي لأشرح الطريقة، ففرضا لدينا الرابط التالي:

http://example.com/page.php?id=الاستعلام

باستخدام القواعد التي ذكرتها لك سيتم تحويله إلى:
 

http://example.com/page-الاستعلام.html

وبهذا، يتم تحقيق الهدف المطلوب في تعديل الرابط.

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

  • 0

وعليكم السلام ورحمة الله وبركاته .

بالاضافه الى الحلول السابقه ستواجهك مشكلة كبيرة، ماذا اذا قام الشخص باعادة تحميل الصفحة بعد الذهاب اليها او اذا اراد احد مشاركة رابط العنوان او قام احد بكتابة العنوان يدويا مثل page-5.html . سيخبره الخادم ان هذه الصفحة غير موجودة لذلك يجب اضافه القاعدة الخاصة التى تسمح للخادم بمعرفة مكان الملف الخاص بالعنوان الجديد .

قم فقط باضافه هذا السطر لملف ال htaccess 

RewriteRule ^page-([^?]*).html$ /page.php?id=$1 [QSA,L]

هذه القاعدة ستقوم باخبار الخادم انه فى حال قام احد بالذهاب الى العناون page-4.html مثلا فان العنوان الخاص الذى سيذهب اليه الخادم هو page.php/id=4 .

ولكن تاكد بانه لن يكون هناك اى عنوان اخر يبدا ب page- حتى لا يتم التداخل بين الروابط والافضل تغير كلمة page بكلمه خاصة اخرى لتوضح محتوى الصفحة مثلا لو الصفحة خاصه بالمقالات نغيرها الى article وهكذا .

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

  • 0
بتاريخ 8 دقائق مضت قال ناnaif ناnaif:

شكرا على الردود الجميله جدا 

لاكن حصلت لخبطة ماهو الكود 

و إذا ارت إضافة صفحات اخرى كيف

وجزاكم الله خير

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

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

بحيث يمكنك إضاقة أي كود تريده بعد # END WordPress أز قبل # BEGIN WordPress وذلك لتفادي خلط الاوامر المخصصة مع الاوامر التي يكتبها ووردبريس افتراضيا على ملف .htaccess.

RewriteEngine On

# إعادة توجيه من /old-page إلى /new-page
Redirect 301 /old-page /new-page

# إعادة توجيه من HTTP إلى HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# منع الوصول إلى ملفات .htaccess
<Files .htaccess>
    Require all denied
</Files>

# منع الوصول إلى ملفات php.ini
<Files php.ini>
    Require all denied
</Files>

# منع تصفح المجلدات
Options All -Indexes
تم التعديل في بواسطة ياسر مسكين
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 2 دقائق مضت قال ناnaif ناnaif:

شكرا على الردود الجميله جدا 

لاكن حصلت لخبطة ماهو الكود 

و إذا ارت إضافة صفحات اخرى كيف

وجزاكم الله خير

واياكم اللهم امين .

هل يمكنك ان تخبرنى ما هى الملفات التى توجد لديك هل هى ملفات html ام php ؟ وماذا تقصد باضافة صفحات اخرى هل تقصد انك لكل استعلام تقوم باضافة صفحة ؟

لقد قمت بارفاق الملف الذى يحتوى على الاكواد ويجب ان تضعه فى المجلد الرئيسى لديك وسيعمل معك ولكن تاكد من انه لا يوجد لديك هذا الملف مسبقا اذا كان موجود مسبقا قم فقط باضافه هذه الاسطر .

RewriteEngine On  
RewriteCond %{QUERY_STRING} id=(.*)
RewriteRule ^page.php$ /page-%1.html? [R=301,L]

RewriteRule ^page-([^?]*).html$ /page.php?id=$1 [QSA,L]

اذا كان اول سطر موجود لديك فقم بحذفه ولا تضيفه مرة اخرى

.htaccess

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

  • 0

انا لدي ملفات php لمدونة و اوريد تعديل الروابط الخاصة بالمدونة 

يعني مثل page.php?id=الاستعلام

اوريد تعديل الروابط لتصبح page-الاستعلام.html

و انا اقصد ب إضافة صفحات اخرى اي تعديل روابط صفحات اخرى

مثل post.php

و سبب تعديل الروابط لتحسين الارشفة

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

  • 0
بتاريخ 4 دقائق مضت قال ناnaif ناnaif:

انا لدي ملفات php لمدونة و اوريد تعديل الروابط الخاصة بالمدونة 

يعني مثل page.php?id=الاستعلام

اوريد تعديل الروابط لتصبح page-الاستعلام.html

و انا اقصد ب إضافة صفحات اخرى اي تعديل روابط صفحات اخرى

مثل post.php

و سبب تعديل الروابط لتحسين الارشفة

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

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

  • 0

نعم هى بالفعل ستقوم بتحسين الارشفه . قم فقط باستخدام الملف الذى ارفقته لك وسيعمل جيدا ان شاء الله .

 واذا اردت تغير صفحات اخرى ستقوم فقط كلمة page بكلمة post مثلا فى السطرين الاخرين بعد ان تقوم بنسخهمها . ولكن تاكد من مسارات الملفات فالكود المرفق يعتبر الملفات فى مجلد ال root اى العنوان كالتالى  https://test.com/page.php اذا لم يكن العنوان هكذا فيجب تغيره فى القواعد الخاصة فى ملف .htaccess

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

  • 0

 

شكرا على إجاباتكم 

انا اوريد تعديل فقط شكل الروابط لتحسين الارشفة

ارجو منكم إعطائي كود htaccess

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

post.php?p=الإستعلام     اوريد التعديل إلى    post-الإستعلام.html

 

page.php?id=الإستعلام     اوريد التعديل إلى    page-الإستعلام.html

 

profile.php?u=الإستعلام     اوريد التعديل إلى    profile-الإستعلام.html

 

و شكرا مقدما

تم التعديل في بواسطة ناnaif ناnaif
اخطاء إملائية
رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...