ما هو ملف .htaccess؟

ما هو ملف .htaccess؟



إذا كنت تملك أو تدير موقع يعمل على خادم Apache فمن الضروري أن تتعرف على الملفات التي تلعب دور كبير في عمله بشكل مستقر. من بين هذه الملفات نجد ملف .htaccess.

ما هو ملف .htaccess؟

ملف .htaccess هو ملف يسمح بإدارة اﻹعدادت على مستوى خادم Apache، بواسطته يمكن إلغاء إعدادات (إذا الخادم يسمح بذلك)، أيضا يسمح لك بتمكين أو تعطيل دوال وميزات إضافية.

ما الذي أستطيع عمله ب .htaccess

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

اقرأ أيضا: عرض آخر المستخدمين المسجلين على ووردبريس

أين أجد ملف .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
Code language: Apache (apache)

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

تحرير ملف .htaccess

كما قلت سابقا عند تفعيل الروابط الدائمة في ووردبريس، يقوم هذا الأخير بإنشاء ملف .hraccess متكون من شفرات، هذه الشفرات تكون موجودة بين BEGIN WordPress و END WordPress. العلامة # تعني أني أن هذه اﻷسطر هي عبارة عن تعليقات لا تأثير لها على مستوى الإعدادات.

اقرأ أيضا: كيفية إستعمال إضافة Jetpack دون الإتصال بـ wordpress.com

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

لتحرير ملف .htaccess يمكنك تحميله بواسطة أي برنامج ftp مثل filezilla أو WinSCP إذا كنت على نظام Microsoft Windows وبعدها فتحه بواسطة محرر النصوص الافتراضي لنظام التشغيل الخاص بك أو أي محرر آخر ك VS Code أو Sublime Text.

كذلك يمكنك تحريره بواسطة خاصية تحرير الملفات المتوفرة في إضافة Yoast SEO, أو تنصيب إضافة متخصصة مثل wp htaccess editor.

اقرأ أيضا: كيفية إضافة حقوق النسخ لووردبريس

كذلك يمكن أن تجد ملفات أخرى من نوع .htaccess داخل ملفات تابعة لبعض الإضافات مثل wp super cache

حماية ووردبريس بواسطة ملف .htaccess

حماية ووردبريس بواسطة ملف .htaccess

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

حماية ملف wp-config.php

ملف wp-config.php هو واحد من أهم الملفات في ووردبريس, هذا الملف يوجد في نفس الملف الذي يوجد به .htaccess, أي الملف الرئيسي للموقع، ويحتوي على إعدادات ومعلومات الاتصال بقاعدة البيانات وبعض تفاصيل هذه الأخيرة. هذه المعلومات هي حساسة جدا ووصول طرف ثالث إليها يمكن أن يؤثر على الموقع. أحسن طريقة لحماية هذا الملف هي عبر وضع هذا الكود في ملف htaccess.

<files wp-config.php> order allow,deny deny from all </files>
Code language: Apache (apache)
هذا الكود يمنع الكتابة في wp-config.php, وبالتالي قد يكون غير متوافق مع بعض الإضافات التي تقوم بالكتابة في هذا الملف تلقائيا (مثل إضافات الكاش وإضافات الحماية)، عليك أن تكون متأكدا من أنك لن تقوم بتنصيب أو تعطيل أية إضافة من هذا النوع قبل إضافة الكود.

طبعا يمكنك دائما الوصول إلى الملف وتحريره يدويا عن طريق ftp أو cPanel.

منع الوصول إلى مجلد wp-content

مجلد wp-content يحتوي على صور، قوالب، إضافات… إلخ، هذا يجعله ملف مهم وحساس في ووردبريس لهذا من الضروري حجبه عن المتطفلين ومنع الوصول إليه، لأجل ذلك فقط عليك إنشاء ملف .htaccess جديد داخله ولصق الكود التالي فيه.

اقرأ أيضا: كيفية التعديل على الودجة “منوعات”

# Deny everyone access by default Order deny,allow Deny from all # Allow Images, JS, and CSS <Files ~ ".(jpe?g|png|gif|css|js)$"> Allow from all </Files>
Code language: Apache (apache)

هذا الكود يسمح للزوار بمشاهدة الوسائط، ملفات css. إلخ ويحمي ملفات php.

تعطيل ال TRACE وال TRACK

TRACE وTRACK هي أساليب HTTP, هي دوال افتراضية لمعظم خوادم الويب Apache تستخدم لغرض تصحيح الأخطاء، مع ذلك هذه الأساليب قد تعرض أمن موقعنا للخطر، لأن هناك هجمات مثل Cross Site Tracing) و Cross Site Scripting, التي بواسطتها يمكن الحصول على الكعكات (Cookies) ومعلومات أخرى حساسة خاصة بالخادم.

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

اقرأ أيضا: كيفية إضافة عضو ووردبريس جديد برمجيا

RewriteEngine on RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* - [F]
Code language: Apache (apache)

منع تصفح الملفات

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

Options All -Indexes
Code language: Apache (apache)

تعطيل Hotlinking

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

يمكنك تجنب ذلك بإضافة هذا الكود إلى ملف .htaccess.

اقرأ أيضا: إنشاء خريطة موقع بصيغة html في ووردبريس

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?saidelballai.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?google.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?bing.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yahoo.com [NC] RewriteRule .(jpg|jpeg|png|gif|svg)$ http://dropbox.com/hotlink-placeholder.jpg [NC,R,L]
Code language: Apache (apache)

فقط عليك تغيير رابط الصورة، هذه الأخيرة يمكنك أن تستعملها لوضع رسالة تعلن فيها أن ال Hotlinking غير مسموح في موقعك.

منع وصول عناوين IP معينة

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

order allow,deny deny from xxx.xxx.xx.x allow from all
Code language: Apache (apache)
يجب تغيير xxx.xxx.xx.x بعنوان IP الذي تريد منعه، ويمكنك وضع العدد الذي تريده من العناوين.

هكذا مثلا:

اقرأ أيضا: كيفية إخفاء بعض الإضافات من لوحة تحكم ووردبريس

<Limit GET POST> order allow,deny deny from xxx.xxx.xx.x deny from xxx.xxx.xx.xxx deny from xxx.xxx.xxx.xxx allow from all </Limit>
Code language: Apache (apache)

يمكنك أيضا أن تقوم بالعكس، أي منع الموقع على الكل وفقط السماح بالوصول إلية لعنوان أو عناوين IP معينة وذلك باستعمال هذا الكود

<Limit GET POST> order allow,deny allow from xxx.xxx.xx.x deny from all </Limit>
Code language: Apache (apache)

حماية ملف .htaccess

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

لحماية ملف .htaccess فقط عليك وضع هذا الكود داخل الملف نفسه.

اقرأ أيضا: الدليل الشامل لأنواع المقالات المخصصة في ووردبريس

order allow,deny deny from all
Code language: Apache (apache)

استعمال ملف .htaccess لتحسين أداء وأرشفة الموقع

تحسين آداء و أرشفة الموقع ووردبريس

يمكن استعمال ملف .htaccess لتحسن أداء وأرشفة الموقع وذلك بتفعيل بعض الدوال مثل إعادة توجيه الروابط 301, إضافة أو حذف www من رابط الموقع، تفعيل كاش المتصفح والضغط zip… إلخ

تمكين كاش المتصفح

<IfModule mod_expires.c> ExpiresActive on ExpiresDefault "access plus 1 month" # CSS ExpiresByType text/css "access plus 1 year" # Data interchange ExpiresByType application/json "access plus 0 seconds" ExpiresByType application/xml "access plus 0 seconds" ExpiresByType text/xml "access plus 0 seconds" # Favicon (cannot be renamed!) ExpiresByType image/x-icon "access plus 1 week" # HTML components (HTCs) ExpiresByType text/x-component "access plus 1 month" # HTML ExpiresByType text/html "access plus 0 seconds" # JavaScript ExpiresByType application/javascript "access plus 1 year" # Manifest files ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds" ExpiresByType text/cache-manifest "access plus 0 seconds" # Media ExpiresByType audio/ogg "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType video/mp4 "access plus 1 month" ExpiresByType video/ogg "access plus 1 month" ExpiresByType video/webm "access plus 1 month" # Web feeds ExpiresByType application/atom+xml "access plus 1 hour" ExpiresByType application/rss+xml "access plus 1 hour" # Web fonts ExpiresByType application/font-woff2 "access plus 1 month" ExpiresByType application/font-woff "access plus 1 month" ExpiresByType application/vnd.ms-fontobject "access plus 1 month" ExpiresByType application/x-font-ttf "access plus 1 month" ExpiresByType font/opentype "access plus 1 month" ExpiresByType image/svg+xml "access plus 1 month" </IfModule>
Code language: Apache (apache)

تمكين ضغط zip

<IfModule mod_deflate.c> # Compress HTML, CSS, JavaScript, Text, XML and fonts AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/x-font AddOutputFilterByType DEFLATE application/x-font-opentype AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-truetype AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml # Remove browser bugs (only needed for really old browsers) BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch bMSIE !no-gzip !gzip-only-text/html Header append Vary User-Agent </IfModule>
Code language: Apache (apache)

عمل إعادة توجيه من نطاق إلى آخر

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

RewriteEngine On RewriteCond %{HTTP_HOST} !^old-domain.com [NC] RewriteRule (.*) http://new-domain.com/$1 [R=301,L]
Code language: Apache (apache)

مكافحة السبام بإستعمال ملف .htaccess

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

اقرأ أيضا: كيف يمكنك استبعاد تصنيف من الودجة تصنيفات على ووردبريس

RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post.php* RewriteCond %{HTTP_REFERER} !.*your_site.com.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
Code language: Apache (apache)
يجب عليك تغيير your_site.com باسم نطاق موقعك.

حذف أو إضافة www إلى الرابط

إذا لاحظت، هناك بعض المواقع يبدأ نطاقها ب www كقوقل وفايسبوك مثلا وفي مواقع أخرى يظهر النطاق دونها كما هو الحال في الموقع الرسمي لووردبريس, حتى اليوم لم أرى أحداً يقول إن هذا الاختيار أفضل أم الآخر أفضل أحسن، كل ما في الأمر هو مسألة اختيار فقط.

إذا كان نطاقك يظهر ب www وتريد إزالتها قم بوضع هذا الكود في ملف .htaccess

RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www.your_site.com [NC] RewriteRule ^(.*)$ http://your_site.com/$1 [L,R=301]
Code language: Apache (apache)

إذا كنت تريد القيام بالعكس قم بوضع هذا الكود في ملف htaccess

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

RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^your_site.com [NC] RewriteRule ^(.*)$ http://www.your_site.com/$1 [L,R=301]
Code language: Apache (apache)
يجب عليك تغيير your_site.com باسم نطاق موقعك.

إعادة توجيه رابط التغدية (feed) إلى FeedBurner

هناك عدة إضافات تقوم بإعادة توجيه رابط التغذية إلى FeedBurner لكن يمكنك عمل نفس الشيء فقط بوضع هذا الكود في ملف .htaccess

RewriteEngine on RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC] RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC] RewriteRule ^feed/?([_0-9a-z-]+)?/?$ https://feeds.feedburner.com/saidelbakkali [R=302,NC,L]
Code language: Apache (apache)
يجب عليك تغيير رابط FeedBurner برابطك الخاص.

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

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

اقرأ أيضا: إعادة توجيه المستخدمين عند تسجيل الدخول


close

سعيد نورتي

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *