7- عمل دومين فرعين . كود PHP:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^user.website.com [NC]
RewriteRule ^(.*)$ /file.php?id=user [R=301]
8- اعادة التوجية .
توجيه صفحة البداية للموقع أو لمجلد على الموقع
عند رفع ملف باسم index.php او index.html او index.htm او home.php او home.htm وغيرها تكون هي الصفحة الرئيسية لموقعك و هذه الاعدادات تكون في Apache الخاص بالخادم و تكون بهذا الشكل :
كود PHP:
DirectoryIndex index.htm index.html index.php
الدالة DirectoryIndex مهمتها التعريف أن أسماء الصفحات التي تلي الدالة هي صفحات البداية للموقع ..
كيف يقرأ ملف htaccess. هذه الدالة :
يبدأ باسم أول صفحة وهي index.htm فإن وجدها على الموقع فسيعتبرها هي ملف الصفحة الرئيسية ..والا سينتقل للاسم الثاني index.html .. وهكذا ..
الآن لنفرض أن صفحة البداية لموقعك اسمها مختلف .. مثلا .. user.htm فهنا ستضع هذا الاسم بعد الدالة DirectoryIndex مباشرا ... وهنا ستكون هذه الصفحة هي صفحة البداية فعلا ..
فالدالة هي :
كود PHP:
DirectoryIndex [file]
ومكان file يكون اسم الصفحة المطلوبة
توجيه الصفحات القديمة في الموقع
لنفرض انه يوجد على الموقع منتدى .. وأعضاؤك يعرفون الرابط المباشر له .. ثم قمت بتغير اسم مجلد المنتدى .. فكيف ستوجه الزوار إلى الرابط الجديد ؟؟
هناك الكثير من الحلول .. منها إضافة تاج في هيدر الصفحة .. ولكن الأفضل أن يتم ذلك عن طريق ملف htaccess. تضعه في نفس المجلد القديم .. ثم تضع فيه الكود التالي
كود PHP:
Redirect /olddirectory/oldfile.html http://yoursite.com/newdirectory/newfile.html
كل ما عليك هو تغير الوصلات في الكود بما يتوافق مع موقعك ...
/olddirectory/oldfile.html تشير إلى الصفحة القديمة
و newdirectory/newfile.html هي العنوان الجديد الذي سيستخدمه زوار الموقع
9- تسريع الصفحات و عرض الصور .في بعض الاحيان نحتاج تسريع للصفحات و خاصة انه في كل زيارة للصفحة يتم تحميل الصور و الفلاش مباشرة في كل زيارة لذلك تستطيع ان تلغي ذلك بتحديثها مره في الشهر وبهذا تكون افضل و اسرع بكثير ولكن تحتاج بعض اعدادات في السيرفر و ان كان اغلب اصحاب السيرفرات يوفرونها لك و تفعيل عمل
Module mod_expires و تستطيع التحكم بالمدة years months weeks days hours minutes seconds
مثال اعمل ملف باسم htaccess. وضع التالي في داخلة :
كود PHP:
ExpiresActive On
ExpiresByType image/gif "access 1 week"
ExpiresByType image/jpg "access 1 week"
ExpiresByType image/jpeg "access 1 week"
ExpiresByType image/png "access 1 week"
ExpiresByType gif "access 1 week"
ExpiresByType jpg "access 1 week"
الان سوف عرض الصور مرة واحدة عند اول زيارة لمدة week اسبوع للصور في الجذر الرئيسي و التي في مجلد image و تم تحديد نوع الملفات بانها صور من نوع gif , jpg , png تستطيع التحكم كما تشاء .
ايضا الفلاش و ملفات css وغيرها
كود PHP:
ExpiresByType css/css "access 1 week"
ExpiresByType js/js "access 1 week"
ExpiresByType application/x-shockwave-flash "access 1 week"
ExpiresByType application/x-javascript "access 1 week"
10- التحكم بتشغيل و تعطيل دوال php على موقعك .
احياناً قد تحتاج الى تفعيل او تعطيل بعض الدوال في php مع اني لا انصح بذلك خاصة عند تفعيل بعض الدوال الخطيرة و مثال لتعطيل عمل ملفات php و cgi وغيرها اعمل ملف باسم htaccess. وضع بداخلة :
كود PHP:
<Files ~ "\.(php*|s?p?x?i?html|cgi|asp|php3|php4|pl|htm|sql|tar|gz|zip|rar)$">
deny from all
</Files>
php_flag engine off
مثال لتفعيل عمل بعض الدوال و منها register_globals و التي تحتاجها البرامج القديمة ويعطلها اصحاب السيرفرات لخطورتها , اعمل ملف باسم htaccess. و ضع بداخلة
كود PHP:
php_flag register_globals on
الان تم تفعيل دالة register_globals و لتعطيلها
كود PHP:
php_flag register_globals off
و الطريقة نفسها مع الدوال الاخرى php_flag name on or off
11- حماية صور موقعك و ملفات موقعك من الارتباط و التحميل من مواقع اخرى .
حماية الباندويث في الموقع من الاستهلاك الخارجي
ربما لاحظت في كثير من الأحيان وصلات لصور أو ملفات في موقعك في مواقع أخرى .. وهذا بالطبع قد يتسبب بإيذاء موقعك لأنه سيستهلك الكثير من الباندويث المخصص لك شهريا ..
اذاُ كيف أجعل عرض الصور التي في موقعي لا تتم إلا من خلال الموقع نفسه ..؟ وكذلك تحميل الملفات ..؟
الحل أيضا هنا يكون باستخدام أوامر ملف htaccess.
لحجب الصور عن الظهور في موقع غير موقعك استخدم الكود التالي :
كود PHP:
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^$ [OR]
RewriteCond %{HTTP_REFERER} !^http://site/.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www/.site/.com/.*$ [NC]
RewriteRule .*.([jpg|gif|jpe?g]+)$ - [NC,F]
لاحظ أن هذا الكود يحجب كل وصلات الصور الخارجة من موقعك .. ويمنعها من الظهور إلا في موقعك سواء كان :
http://site.com/
أو
http://www.site.com/
فقط عدل الكود السابق وضع مكان site اسم موقعك ..
والدالة الأخيرة في الكود RewriteRule هي لتحديد لاحقات الصور المراد منعها .. ويمكنك الزيادة عليها كما ترغب ..
وأيضا إضافة لاحقات الملفات التي تريد منع تحميلها من موقعك كالملفات المضغوطة zip , rar .. أو اللاحقات التنفيذية .. exe ..
وبذلك لن يتمكن أحد من وضع وصلة في موقعه لبرنامج عندك في الموقع .. وإذا فعل ذلك فلن يعمل معه الرابط .. وعلى الزائر التوجه إلى موقعك والتحميل منه مباشرة ...
إخفاء محتويات المجلد عن الأعضاء أو نوع معين من الملفات فقط في المجلد
إذا كان لديك في الموقع مجلد وتريد إخفاء محتوياته عن الزوار فما هي الحلول المقترحة لذلك ؟؟
لتوضيح الأمر أكثر ..
لنفرض أن لديك مجلد في الموقع تضع فيه ملفات للتحميل بشكل مؤقت أو صور أو ما شابه ذلك .. ولكنك تريد منع الزوار من رؤية محتويات هذا المجلد .. فهناك عدة طرق لذلك منها إعطاء تراخيص 751 او 111 و الافضل 666 لهذا المجلد .. ولكن عن طريق ملف htaccess. تستطيع التحكم بذلك بشكل أكبر بكثير ..
فأنت هنا تستطيع منع الزوار من مشاهدة كل محتويات المجلد .. وذلك بوضع الكود التالي في الملف :
لاحظ أن ( * ) تعني جميع الملفات الضمنة داخل المجلد ..
وقد تمنعهم فقط من عرض ملفات الصور وهنا تضع الكود التالي :
كود PHP:
IndexIgnore *.gif *.jpg
ويمكنك إضافة ما تريد من لواحق ملفات الصور والملفات الأخرى كـ zip . rar ..
12- تعريف الخادم بلاحقات الملفات باستخدام Mime Types
في بعض الأحيان قد لا تعمل ملفات MP3 أو الفلاش أو PHP على الخادم .. والسبب في ذلك أن تعريف هذه الملفات غير موجود على الخادم .. فإذا كان الخادم لديك يدعم ملفات MP3 أو PHP ولكن لم تعمل عندك .. فهنا أنت بحاجة إلى تعريف الخادم بها بواسطة Mime Types ...
فعند إضافتها يخبر الخادم المتصفح أن هذا الملف هو ملف MP3 أو ملف فلاش .. وبالتالي يكمل المتصفح المهمة ويقوم بقراءته بالشكل المناسب للملف ..
بالنسبة لـ MIME فهي اختصار لـ Multipurpose Internet Mail Extensions
وهو أحد البروتوكولات المتخصصة بنقل البيانات غير النصية ( كالصور وملفات الفيديو و ملفات الفلاش ) عبر الانترنت سواء كان بالمتصفح أو البريد الالكتروني ( وغالبا يكون للبريد الالكتروني ) ...
ولتعريف ملف فلاش مثلا .. فقط اكتب الكود التالي في ملف htaccess.
كود PHP:
AddType application/x-shockwave-flash swf
بافتراض أن shockwave هو اسم الملف ..
ولتعريف ملف midi استخدم الكود التالي :
كود PHP:
AddType audio/x-midi mid
ولتعريف ملفات ريل بلير استخدم الكود التالي :
كود PHP:
AddType audio/x-pn-realaudio .real
وبنفس المبدأ والطريقة تعمل مع بقية الملفات التي لم تعمل إلا بتعريفها .. ولكن عادة تكون هذه الأشياء معرفة بشكل افتراضي ولا حاجة إلى تعريفها إلا إذا دعت الحاجة إلى ذلك ..
13- تعطيل عمل برامج على الخادم . كود PHP:
<IfModule mod_security.c>
SecFilterScanPOST Off
</IfModule>
برنامج mod_security موديل يتوفر في السيرفر من اجل الحماية وتجد العديد من اصحاب المواقع يعطلون بعض خواصة ومنها SecFilterScanPOST الذين يستخدمون منتديات vb لحل مشاكل الرد السريع .
هذا وصلى الله على نبينا محمد , إن أخطاءنا فمن الشيطان و انتظر من لديه المزيد أو الزيادة والنقص على ما كتبنا .
اخوكم بدر العنزي .
مصادر المقال
http://www.hostingmanual.net/other/htfun.shtml http://www.javascriptkit.com/howto/htaccess.shtml http://www.phpvillage.org/community/index.php http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html http://httpd.apache.org/docs/2.0/misc/rewriteguide.html