.htaccess: الدليل الشامل لتحسين SEO

.htaccess: الدليل الشامل لتحسين SEO
David Kaufmann
دروس SEO
7 min read

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

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

ما هو ملف .htaccess؟

ملف .htaccess هو اختصار لـ Hypertext Access. إنه ملف الوصول إلى النص التشعبي الذي اشتُق اسمه من ملف تكوين الدليل في خوادم Apache، ويُستخدم لتجميع التوجيهات الرئيسية للخادم.

يبدأ اسمه بنقطة "." بسبب أنظمة Unix، حيث تُعرَّف هذه الملفات على أنها ملفات مخفية. لذلك، يجب الانتباه عند إعادة تسميتها في Windows لتجنب المشاكل.

يُنشأ هذا الملف محليًا ويُحفظ بصيغة نصية (.txt) — وليس بصيغة Word مطلقًا — ثم يُرفع إلى الخادم عبر FTP ويُوضع في المجلد الذي يجب استخدامه فيه.

كيف يعمل؟

يجب مراعاة سلوك هذا الملف وجميع خصائصه:

  • يكون سلوك هذا الملف هرميًا عبر شجرة دليل الموقع بالكامل، مما يعني أنه إذا كان الملف موجودًا في الدليل الجذر للموقع، فإن التوجيهات تؤثر على جميع المجلدات. لذلك، لا يوجد ملف htaccess واحد، بل يمكن أن يوجد واحد لكل دليل عند الحاجة.
  • في كل مرة يصل فيها مستخدم إلى صفحة ويب، يفحص الخادم هذه المستندات والتوجيهات الموجودة فيها. لذا فمن الضروري أن يكون مُكوَّنًا بشكل مثالي وخاليًا من الأخطاء لتجنب الحوادث.
  • قبل إجراء أي تغيير، يجب العمل دائمًا على نسخة من مستند .htaccess، لأن التحرير الخاطئ قد يسبب مشاكل لاحقًا.
  • تبدأ التعليقات في الملف دائمًا بـ علامة الشباك "#".

كيف نُحسِّن ملف htaccess لـ SEO؟

من خلال توجيهات معينة، يمكننا تحديد ما نطلبه من الخادم، مما يسمح لنا بتحسين مجالات متنوعة. في htaccess يمكننا القيام بما يلي:

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

مفيد جدًا عندما نحتاج إلى إزالة نطاق فرعي وجعله جزءًا من مجلد ضمن النطاق. مثال: إعادة توجيه hola.example.com إلى www.example.com/hola.

إعادة توجيه 301 و 302

يحتوي هذا الملف على الـ URL القديم والـ URL المراد إعادة التوجيه إليه.

File redirection

Redirect /old-page.html https://www.new-page.html

الحماية بكلمة مرور

يمكن حماية مناطق معينة من الموقع بكلمة مرور:

Simple password protection via .htaccess

AuthType Basic AuthName "Protected area" AuthUserFile /<absolute path to password file>/.htpasswd AuthPGAuthoritative Off require user User1 User2 User3

التحكم في الوصول إلى المجلدات

يمكن من خلال التوجيهات إدارة وصول جميع المستخدمين (رفض أو سماح) إلى مجلدات معينة، أو من خلال عناوين IP محددة:

File for IP access regulation

Order deny,allow Deny from .aol.com Deny from 192.168 Allow from 192.168.220.102

تحديد النطاق الرئيسي

استخدام قاعدة إعادة توجيه 301 لـ domain.com أو www.domain.com

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www.

RewriteCond %{HTTPS}s ^on(s)|off

RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www.)?(.+)$

RewriteRule ^ %1%3%{REQUEST_URI} [R=301,L]

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

إعادة توجيه الموقع إلى البروتوكول الآمن:

httpsRewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

تغيير الصفحة الافتراضية

في بعض المواقع، يكون اسم الصفحة الافتراضية /index، وهو ليس ودودًا لـ SEO. يمكن تغييره حتى لا يظهر.

DirectoryIndex example-page.php

زيادة حد ذاكرة PHP

لاستخدام تطبيقات PHP حدود معينة، لأن السكربتات تستهلك ذاكرة الخادم. يمكن زيادة السعة باستخدام الأمر التالي:

PHP Memory Limit

php_value memory_limit 128M

تغيير المنطقة الزمنية للخادم

يمكن ضبط المنطقة الزمنية الصحيحة بالأمر التالي:

#Set the default time zone SetEnv TZ America / Washington

ترميز المستندات

يمكن تحديد نوع الترميز لكل نوع من المستندات. في حالة ترميز UTF-8، يجب إدخال الأمر التالي:

Specify character encoding

AddDefaultCharset utf-8

فرض التخزين المؤقت للموقع

يساعد تغيير عدد ثواني تكرار التخزين المؤقت على تسريع تحميل الصفحة عند زيارة المستخدم، لأن معظم العناصر غير المُعدَّلة ستكون مخزنة مؤقتًا. يساعد هذا بشكل أساسي على تحسين تحميل الصور.

<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/gif A432000 ExpiresByType image/jpg A432000 ExpiresByType image/jpeg A432000 ExpiresByType image/png A432000 ExpiresByType image/ico A432000 ExpiresByType image/bmp A432000 ExpiresByType text/css A432000 ExpiresByType text/javascript A432000 ExpiresByType application/javascript A432000 ExpiresByType application/x-javascript A432000 </ifmodule>

تخصيص صفحة خطأ 404

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

Custom error message at local location

ErrorDocument 404 /access-path/404.html الأمان

من خلال هذا الملف، يمكن حظر وصول bots سبام معينة:

RewriteEngine on

RewriteCond %{HTTP_REFERER} buttons-for-website.com [NC,OR]

RewriteCond %{HTTP_REFERER} darodar.com [NC,OR]

Hotlinking

يمكن أيضًا حظر التقنيات غير الأخلاقية مثل hotlinking: تتضمن هذه التقنية عرض محتوى مستضاف على خادمنا في موقع آخر، مما يجعل خادمنا يتحمل عبء عرض هذا المحتوى (عادةً فيديوهات أو صور) حتى لو كان الزائر في موقع آخر.

Prevent hotlinking

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://your-domain/.*$ [NC] [OR] RewriteCond %{HTTP_REFERER} !^http://www.your-domain/.*$ [NC] [OR] RewriteRule .*.(gif|GIF|jpg|JPG|bmp|BMP|wav|mp3|wmv|avi|mpeg)$ - [F]

إنشاء URLs ودودة

يمكن إزالة المعاملات الافتراضية من الـ URL وإخفاؤها لتبدو أكثر ودًا، مما يساعد على ترتيبها بشكل أفضل في نتائج البحث. مثال: من الأفضل أن تظهر https://www.example.com/index.php?parameter=blog كـ https://www.example.com/blog.

RewriteEngine On

RewriteRule ^shop/([^/])/([^/])/$ /index.php?category=$1&product=$2 [L]

ضغط الملفات لتحسين التصفح

من خلال قواعد htaccess، يمكن ضغط ملفات js و css و html والملفات النصية للموقع لتقليل المساحة التي تشغلها أثناء التحميل. يتيح هذا لمستخدمي الجوال استهلاك بيانات أقل أثناء التصفح. لنتذكر أهمية WPO في SEO!

<ifmodule> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript </ifmodule>

ضغط Gzip

ضغط الملفات على الخادم لتحقيق تنزيلات أسرع وتحسين جودة التصفح.

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch bMSIE !no-gzip !gzip-only-text/html

منع فهرسة الملفات

على الرغم من حظر URLs أو مجلدات معينة في ملف robots.txt، قد يستمر Google في فهرستها أحيانًا. بإدخال الأمر التالي، يمكن تحقيق حظر كامل:

<Files ~ «.pdf$»>

Header set X-Robots-Tag «noindex, follow»

</Files>

تفعيل Keep-Alive

عند تفعيلها، يمكن الحفاظ على اتصال مستمر بالخادم بدلًا من بدء الاتصال في كل مرة تُحمَّل فيها الصفحة. من خلال keep-alive نضمن تنزيل الموقع بسرعة.

<ifModule mod_headers.c> Header set Connection keep-alive </ifModule> الآن وقد رأيت كل ما يمكن فعله بملف htaccess، يمكنك تنفيذه بحرية. هذه القواعد صالحة سواء كنت تستخدم WordPress كنظام إدارة محتوى، أو كودك الخاص، أو نظامًا آخر.

إذا كان لديك مشروع WordPress، فستكون المهمة أبسط لأنه يمكنك تحرير ملف htaccess مباشرة من المحرر. ومع ذلك، فهذا ليس مجرد plugin بسيط، ومن السهل جدًا أن تُعطّل موقعك، فكن حذرًا جدًا! سنريك كيف.

تحرير ملف htaccess في WordPress

إذا كنت تستخدم WordPress، فنوصي بتثبيت plugin Rank Math الذي يسمح بالتحرير بسهولة وسرعة.

ما عليك سوى الانتقال إلى Rank Math > General Settings > Edit .htaccess.

ملف Htaccess في WordPress
ملف Htaccess في WordPress

تذكر أن تحرير ملف htaccess في WordPress أمر سهل للغاية، ولكن يجب توخي الحذر!

هل لا تزال لديك أسئلة؟ اترك تعليقًا وسنُجيب عليه بكل سرور!

مراجع:

- CDmon: معلومات حول ملف .htaccess واستخداماته - Computerhoy: ما هو .htaccess، ولماذا يُستخدم، والأكواد الأساسية - Ionos: 10 حيل لتكوين .htaccess يجب أن يعرفها الجميع - HelpOne: ما هو .htaccess؟ - Hostinger: ما هو ملف .htaccess؟

بقلم: David Kaufmann

David Kaufmann

قضيتُ السنوات العشر الأخيرة منشغلًا تمامًا بـ SEO — وبصراحة، لم أكن لأبدّل ذلك بأي شيء آخر.

تطوّرت مسيرتي إلى مستوى جديد عندما عملت أخصّائيَّ SEO أوّل في Chess.com — أحد أكثر 100 موقع زيارةً على الإنترنت بأكمله. العمل على هذا النطاق علّمني ما لم تعلّمه لي أي دورة أو شهادة.

من هذه التجربة، أسّستُ SEO Alive — وكالة للعلامات التجارية الجادّة بشأن النموّ العضوي. وبما أنّي لم أجد أداةً تُتقن العالَمَين الكلاسيكي وعصر الذكاء الاصطناعي، بنيتُ SEOcrawl. إن كنت تبحث عن شريك SEO خبير يعشق هذا المجال — يسعدني التواصل معك!

→ اقرأ جميع مقالات David
المزيد من المقالات: David Kaufmann

اكتشف المزيد من محتوى هذا الكاتب