اجعل رابط موقعك قصير ونظيف باستخدام ملف .htaccess - مقال #3

55

التعليقات

شكراً لك ، واصل.

مجهود رائع جدا

في الحقيقة كثرة استعمالي لوردبريس جعلني انسي هذه المهارات :)

مبدع كعادتك حسام إستمر بتقديمك مثل هذه الدروس المميزة

ممتاز جدا, والفائده الكبرى من عمل روابظ نظيفة, حيث في المستقبل تستطيع تغيير البيئة بشكل كامل بأي لغة تريدها دون الخوف من شكل الروابط او فقدها.

ماشاء الله عليك نحتاج مثل هذا

رائع !!

طيب، إذا كان صفحة اليوز تحتوي على صور في مجلد بهذا الشكل:

user.php

images

‏ والصفحة تظهر بها الصورة بهذا الكود:

‏ ‏ ‎

وأنت دخلت على user‎=username‏ بهذا الشكل : user/username

يعني أصبحت روابط محلية مثل الصور كلها في مجلد داخل المجلد الحالي باسم : user/

كيف نتصرف بحيث تظهر الصور وغيرها من ملفات التصميم في المجلدات المحلية صحيحة؟

بسيطة, على سبيل المثال انا لدي صفحة البروفايل وهي بهذا الشكل:

localhost/sham/user/hussam

ان اريد ان استدعي ملفات المظهر ان كان الرابط على هذا الشكل:

localhost/sham/user.php?user=hussam

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

<link href="assets/css/style.css" rel="stylesheet">

وان كان الرابط على هذا الشكل:

localhost/sham/user/hussam

استدعي المفات بهذا الطريقة:

<link href="../assets/css/style.css" rel="stylesheet">

او هناك طريقة اخرى قم بتخزين رابط الموقع في قاعدة البيانات او ملف config او في اي مكان اخر وقم بستدعاء الرابط وبعده المسار

مثال:

<link href="<?=SITE_URL; ?>assets/css/style.css" rel="stylesheet">

هناك ما هو ابسط ")

<link href="/assets/css/style.css" rel="stylesheet">

ولاكن هذه الطريقة لا تنفع ان كان الموقع في مجلد فرعي

مثلا رابط الموقع على هذا الشكل :

localhost/Git/Prize

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

localhost/assets/css/style.css

ولن يجلب ملف style

لماذا يتم استدعاء المجلد على شكل ملف فرعي ؟

يمكن إستخدام البورت الخاص بالـ localhost

مثلاً الموقع الذي في ردي سابق يكون :

localhost:4000/user/hussam

-

والذي كتبته في ردك :

localhost:5000/Prize

-

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

جربت هذا:

RewriteRule ^user/([0-9أ-يa-zA-Z_.]+) user.php?user=$1 [NC,L]
RewriteRule ^user/images/ images/$1 [NC,L]
RewriteRule ^user/css/ css/$1 [NC,L]

وعمل معي بنجاح!

ممتاز ممتاز

أ.حسام .. عند استخدام .htaccess .. تعمل الروابط النظيفه ولكن عند تحديث الصفحه أو الإنتقال من صفحه إلى أخرى يعود الرابط كما كان من قبل .. علماً اني اعلى الخادم المحلي .. هل هناك مشكلة ما ..؟

هل من الممكن الكود

شكرا

أخي لو سمحت ممكن مساعدة هنا في ما يخص htaccess

RewriteEngine On

RewriteBase /

RewriteRule ^(.)-f([0-9])/mcp.php(.*) mcp.php?%{QUERY_STRING} [L,R=301]

RewriteRule ^(.)-f([0-9])/(.)-t([0-9])-s([0-9]*).html viewtopic.php?f=$2&t=$4&start=$5&%{QUERY_STRING} [L]

RewriteRule ^(.)-f([0-9])/(.)-t([0-9]).html viewtopic.php?f=$2&t=$4&%{QUERY_STRING} [L]

RewriteRule ^(.)-f([0-9])/index-s([0-9]*).html viewforum.php?f=$2&start=$3&%{QUERY_STRING} [L]

RewriteRule ^(.)-f([0-9])/ viewforum.php?f=$2&%{QUERY_STRING} [L]

RewriteRule ^(.)-f([0-9]) viewforum.php?f=$2&%{QUERY_STRING} [L]

لدي الكود السابق في الاباتشي

لكنه لا يدعم العربية في الروابط منتدي phpbb


برمجة

مجتمع للمبرمجين من جميع المستويات لتبادل المعرفة والخبرات. ناقش لغات البرمجة المختلفة، الحلول البرمجية، والمشاريع.

24.9 ألف متابع