ما هو ملف .htaccess؟

ملف .htaccess في ووردبريس

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

ما هو ملف .htaccess؟

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

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

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

اقرأ أيضا: كيف يمكنني تعطيل وحدات JetPack باحترافية؟

أين أجد ملف .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، قبل البدء في التعديلات ينصح بعمل نسخة احتياطية للملف.

تحرير ملف .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>
هذا الكود يمنع الكتابة في 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>

هذا الكود يسمح للزوار بمشاهدة الوسائط، ملفات 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]

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

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

Options All -Indexes

تعطيل Hotlinking

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

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

اقرأ أيضا: طريقة تعيين الصورة البارزة تلقائيا لمقالات ووردبريس

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]

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

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

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

order allow,deny
deny from xxx.xxx.xx.x
allow from all
يجب تغيير 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>

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

<Limit GET POST>
order allow,deny
allow from xxx.xxx.xx.x
deny from all
</Limit>

حماية ملف .htaccess

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

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

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

order allow,deny
deny from all

استعمال ملف .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>

تمكين ضغط 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>

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

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

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

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

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

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

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]
يجب عليك تغيير 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]

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

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

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^your_site.com [NC]
RewriteRule ^(.*)$ http://www.your_site.com/$1 [L,R=301]
يجب عليك تغيير 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]
يجب عليك تغيير رابط 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. انتا انسان اروع من الرائع
    موضوع جميل ومهم في نفس الوقت

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

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

اترك تعليقًا

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