ما هو ملف .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. العلامة # تعني أني أن هذه اﻷسطر هي عبارة عن تعليقات لا تأثير لها على مستوى الإعدادات.

اقرأ أيضا: كيفية تخصيص صفحة تسجيل الدخول في ووردبريس

ملف .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.

اقرأ أيضا: طريقة إضافة خاصية nofollow للروابط الخارجية تلقائيا في ووردبريس

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 الذي تريد منعه، ويمكنك وضع العدد الذي تريده من العناوين.

هكذا مثلا:

اقرأ أيضا: ما هو ملف robots.txt و كيف يمكنك إنشاءه؟

<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 فقط عليك وضع هذا الكود داخل الملف نفسه.

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

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

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

أنا لا أرسل أبدا البريد المزعج! اقرأ سياسة الخصوصية لمزيد من المعلومات.

17 تعليق

  1. الله يسعدك استاذي سعيد موضوع في قمة الأهمية ويحتاج إليه الكثير من المدونين والكُتّاب في عالم ووردبريس أيضاً المطورين بشكل أخص ..
    هنالك سؤال طرحه الكثير من الناس وهو : هل هنالك طريقة لتغير تركيبة الروابط الدائمة من خلال [code lang=”apacheconf” inline=true].htaccess[/code] ليصبح الرابط منتهي بـ html على سبيل المثال :
    في المقالات :
    [code lang=”none” inline=true]http://www.domin.com/testpost.html[/code]
    في صفحة الكاتب :
    [code lang=”none” inline=true]http://www.domin.com/author/admin.html[/code]
    وفي صفحة الأرشيفات :
    [code lang=”none” inline=true]http://www.domin.com/category/test.html[/code]
    بشكل عام جعل التركيبة تنتهي بـ html ..
    هنالك إضافات متخصصة بذلك وقد قمت بتجربتها وهي ناجحة ولكن هل هنالك آلية يتم عملها بواسطة هذا الملف الذي يقدم خدمات كثيرة ؟

    تحياتي وتقديري لك استاذي سعيد .

  2. يا اخي سعيد الله يسعدك في الدنيا والاخرة. والله موضوع في مستوى عالي من الاحترافية والشمولية وايضا عن موضوع “ملف .htaccess ” قليلا ما نجد بعض الافكار عنه. فالله يزيدك علم على علم. بالتوفيق.

  3. مرحبا اخي سعيد ..
    انت متميز للغاية في مواضيعك شكرا لك
    لدي سؤال ..هل يمكنك تجميع أهم هذه الاعدادات في ملف واحد وارفاقه في مقالك؟

    1. إذا كنت تقصد منصة wordpress.com فللأسف لا يمكنك الوصول لملف .htaccess، أما إذا منت تستخدم نظام إدارة المحتوى ووردبريس على استضافتك الخاصة فيمكنك الوصول إليه عبر cPanel، عن طريق ال FTP.

      بالتوفيق.

  4. شكرا لك موضوع جميل ولكن كيف أظهر ملف [code lang=”php” inline=”true”]htaccess.[/code] مرة أخرى بعد إضافة هذا الكود

    [code lang=”php”]
    order allow,deny
    deny from all
    [/code]

    لأنني وضعت هذا الكود ولم أستطع إظهاره مرة أخرى

    1. السلام عليكم، الملفات المسبوق بنقطة في أنظمة Linux تكون مخفية ويجب عليك إظهارها، هل قمت بالتعديل على [code lang=”php” inline=”true”].htaccess[/code] عن طريق cPanel أم عن طريق ftp بإستعال أحد البرامج كـ Filezilla أو Winscp؟ في جميع الحالات هناك إعدادات لعرض الملفات والمجلدات المخفية خاصة بكل برنامج.

  5. السلام عليكم ورحمة الله وبركاته
    أشكرك بشدة شديدة جدا وجزاك الله خير الجزاء على هذه المقالة كان عندى مشكلة ف الموقع شغال فيه والحمد لله اتحلت بسبب معلوماتك القيمة عن ملف .htaccess
    شكرا جزيراً

  6. انتا انسان اروع من الرائع
    موضوع جميل ومهم في نفس الوقت

    في اللحظه التي كنت اقرأ فيها مقالتك انت وفرت عليا تركيب تقريبا ٣اضافات ووردبريس
    والتي تسبب ثقل في الموقع غالباً بسبب الملفات المتكرره

    اشكرك عزيزي وواصل تميزك

اترك تعليقًا

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