ما هو ملف .htaccess وكيف تستخدمه في WordPress؟

نشرت: 2020-10-27

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

ما هو ملف htaccess؟

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

يعد .htaccess ملفًا أساسيًا للتكوين في WordPress يُستخدم لتجاوز إعدادات معينة لخادم الويب Apache (يعد Apache برنامجًا شائع الاستخدام على خوادم الويب) أو لتنفيذ العديد من الوظائف الأخرى التي تؤثر على كيفية عمل موقع الويب الخاص بك. يتم تضمينه في جميع عمليات تثبيت WordPress مباشرة بعد تمكين الروابط الثابتة وعادة ما يكون موجودًا في الدليل الجذر للتثبيت. يمكنك رؤيته أو تحريره من خلال الوصول إلى ملفات التثبيت عبر عميل FTP مثل FileZilla أو WinSCP.

ملاحظة: تأكد من تعديل تفضيلات عميل FTP بحيث تظهر الملفات المخفية.

بشكل افتراضي ، تبدو محتويات ملف htaccess لموقع ويب WordPress ، بمجرد تمكين الروابط الثابتة ، كما يلي:

 # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress

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

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

ملاحظة: من المهم أن يتم إجراء أي تغييرات يتم إجراؤها على ملف htaccess الخاص بموقعك بعناية. حتى وجود خطأ مطبعي بسيط في هذا الملف قد يؤدي إلى تعطل موقع الويب الخاص بك. على هذا النحو ، إذا لم تكن متأكدًا من أي تغييرات تقوم بإجرائها ، فيجب عليك اختبارها بشكل مثالي على خادم مرحلي قبل التقدم إلى موقع الويب المباشر الخاص بك.

الأشياء التي يمكنك القيام بها باستخدام ملف htaccess الخاص بك

لذلك دعونا نرى كيف يمكنك التحكم بشكل أكبر في موقع الويب الخاص بك بمساعدة ملف htaccess.

إعادة التوجيه بين "www" و "non-www"

الاستخدام الشائع لملف .htaccess هو تعيين إعادة توجيه دائمة من "المجال المجرد" (إصدار غير www) إلى إصدار www الخاص به أو العكس.

قبل المتابعة ، تأكد من تعيين كلا المجالين في DNS الخاص بك لحل عنوان IP الصحيح للخادم.

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

URL موقع الإعدادات

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

 RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.mycompanyname\.com [NC] RewriteRule ^(.*)$ http://mycompanyname.com/$1 [L,R=301]

لتحقيق العكس تمامًا (إذا تم تعيين www على أنه أساسي) وإعادة التوجيه من نطاق "non-www" إلى "www" ، فستحتاج إلى إدخال هذا الرمز:

 RewriteEngine on RewriteCond %{HTTP_HOST} ^mycompanyname.com [NC] RewriteRule ^(.*)$ http://www.mycompanyname.com/$1 [R=301,L]

إذا لم تكن معتادًا على التعبيرات العادية المستخدمة في الكود وترغب في فهم المزيد حول بناء الجملة ، فلا تتردد في قضاء وقتك وقراءة المزيد عن REGEX. HT Access Cheat Sheet هي أداة أخرى مفيدة للغاية

301 إعادة توجيه (إعادة توجيه دائمة)

يخبر 301 Redirect لمحركات البحث أن عنوان URL قد تم استبداله بشكل دائم بآخر ويعيد أيضًا توجيه المستخدم إلى ذلك الزائر إلى عنوان url جديد (صحيح!). .

هذا هو جزء من التعليمات البرمجية التي تؤدي الحيلة عند وضعها في ملف .htaccess:

 RewriteEngine on RewriteCond %{HTTP_HOST} ^mycompanyname.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.mycompanyname.com [NC] RewriteRule ^(.*)$ http://example.com/$1 [L,R=301,NC]

في المثال أعلاه ، أعدنا توجيه المستخدمين من موقع الويب "mycompanyname.com" إلى "example.com". بالطبع ، سترغب في استبدال هذه الأقسام بعناوين url الخاصة بك.

سينطبق هذا أيضًا على جميع المسارات الموجودة ضمن المجال. مما يعني أنه على سبيل المثال ، سيتم إعادة توجيه mycompanyname.com/new.html إلى example.com/new.html

302 إعادة توجيه (إعادة توجيه مؤقتة)

عندما يتم نقل محتوى مؤقتًا إلى موقع آخر ، يتم استخدام إعادة توجيه 302. الصيغة هي نفسها كما في 301. على سبيل المثال:

 Redirect 302 /old.html http//www.mycompanyname.com/new.html

من منظور عملي ، تكون النتيجة هي نفسها تمامًا ولكن مع اختلاف واحد مهم. باستخدام إعادة التوجيه 301 ، يتم إخبار محركات البحث أن الصفحة لم تعد موجودة ، وبذلك ، ستشجع محركات البحث على إسقاط هذه الصفحة من نتائج البحث. في حالة إعادة التوجيه 302 ، سيستمر Google في الزحف إلى عنوان URL الأصلي بدلاً من عنوان URL الجديد. على هذا النحو ، فهو الحل المثالي لإعادة التوجيه عندما تريد فقط إعادة التوجيه إلى محتوى بديل مؤقتًا.

فرض HTTPS

يعد تأمين موقع الويب الخاص بك بشهادة SSL أمرًا مهمًا جدًا في هذه الأيام. ستعرض مواقع الويب التي لا تفعل ذلك الآن تحذيرًا في شريط المتصفح يمكن أن يقوض الثقة في موقع الويب الخاص بك. بالإضافة إلى ذلك ، تعاقب Google مواقع الويب التي لا تقدم محتوى عبر HTTPS وبالتالي قد تتأثر تصنيفات البحث الخاصة بك.

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

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

منع عناوين IP

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

 Deny from 94.66.58.135

إذا كنت تريد معرفة كيفية حظر عنوان IP بطرق أخرى ، فيرجى قراءة هذا الدليل.

منع الارتباط الساخن للصور

الارتباط الساخن للصور هو المكان الذي يقوم فيه شخص ما بتضمين صورة على موقع الويب الخاص بك في صورته الخاصة. قد يكون هذا مشكلة (وليس فقط من منظور حقوق الطبع والنشر) لأنه يعني أن الخادم الخاص بك سيضطر إلى العمل لوقت إضافي لعرض الصورة (الصور) على موقع الويب الخاص بشخص آخر. يمكنك إيقاف هذا باستخدام ملف .htaccess لمنع شخص ما من تضمين صورك في موقعه على الويب باستخدام الكود التالي:

 RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mycompanyname.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ - [F]

لا تنسَ استبدال "mycompanyname.com" بعنوان URL لموقعك على الويب!

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

 RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mycompanyname.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC]

يمكنك بالطبع تضمين أي مواقع ويب أخرى تريد إضافتها إلى القائمة البيضاء. أخيرًا ، يحدد السطر الأخير في الكود ( RewriteRule .(jpg|jpeg|png|gif)$ - [F] ) أنواع الوسائط المحظورة.

حماية البرنامج المساعد وملفات السمات

يمكن أن تكون ملفات PHP والمكونات الإضافية في بعض الأحيان هدفًا للمتسللين الذين يحاولون إدخال تعليمات برمجية ضارة إليها. يمكنك استخدام ملف .htaccess للمساعدة في منع الوصول إلى هذه الملفات باستخدام التعليمات البرمجية التالية:

 RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/ RewriteRule wp-content/plugins/(.*\.php)$ - [R=404,L] RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/ RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L]

حماية ملفات WordPress الأساسية

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

 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule>

منع الروبوتات السيئة من الزحف إلى موقع الويب الخاص بك

الروبوتات عبارة عن نصوص ويب آلية يمكنها مسح ملايين مواقع الويب يوميًا. تستخدم Google برامج الروبوت لفحص مواقع الويب وتأخذ البيانات من عمليات الفحص هذه لتحديث قواعد بيانات البحث الضخمة الخاصة بها. نأمل أن يكون روبوت Google غير ضار تمامًا! هناك روبوتات أخرى رغم أنك قد لا ترغب في فحص موقع الويب الخاص بك. قد لا تفعل بعض هذه الروبوتات "السيئة" شيئًا أكثر من مجرد استهلاك النطاق الترددي غير الضروري للخادم بينما قد يبحث الآخرون بنشاط عن نقاط الضعف التي يمكن استغلالها في موقع الويب الخاص بك. يمكن استخدام ملف .htaccess الخاص بك لحظر هذه الروبوتات "السيئة".

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

 #Block bad bods requests SetEnvIfNoCase user-Agent ^FrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Java.* [NC,OR] SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR] SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR] SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR] SetEnvIfNoCase user-Agent ^Zeus [NC]

بعد حفظ التغييرات ، ستحصل أي روبوتات موجودة في القائمة تزور موقع الويب الخاص بك على 403 صفحة محظورة.

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

يوصى عمومًا بتقييد الوصول إلى ملف wp-config.php لأنه يحتوي على بيانات اعتماد الوصول إلى قاعدة البيانات.

للقيام بذلك عبر htaccess ، ما عليك سوى نسخ الأسطر التالية ولصقها في ملف htaccess الخاص بك:

 <files wp-config.php>order allow,denydeny from all</files>

تعطيل تنفيذ PHP

طريقة فعالة للغاية للحماية من محاولات الاختراق هي منع تنفيذ PHP في أدلة معينة حيث لا تكون هناك حاجة إليها. على سبيل المثال /wp-includes/ و /wp-content/uploads/ directories هي مواقع شائعة يستخدمها المتسللون لوضع كود يسمح بالوصول غير المصرح به إلى الخادم (المعروف باسم ملفات backdoor). لن يؤدي تعطيل تنفيذ PHP في هذه الدلائل إلى مسح هذه الملفات ، بل سيؤدي إلى إيقاف تنفيذ التعليمات البرمجية الخاصة بهم بدلاً من ذلك. للقيام بذلك ، أضف التعليمات البرمجية التالية إلى ملف .htaccess الخاص بك.

 <Files *.php>deny from all</Files>

ستجد أيضًا أن العديد من مزودي الاستضافة ، بما في ذلك Pressidium ، قد قاموا بالفعل افتراضيًا بتعطيل تنفيذ PHP في هذه الدلائل من أجل تحسين مستوى الأمان لعملائهم.

تعطيل وصول XML-RPC

إنها مشكلة شائعة غالبًا ما تراها فرق الدعم في الشركات المضيفة حيث يتلقى تثبيت WordPress الآلاف من طلبات "POST /xmlrpc.php HTTP / 1.1" التي غالبًا ما تكون مرتبطة بهجوم من عنوان IP واحد أو عدة عناوين IP. أحد الحلول لذلك هو تعطيل XML-RPC.

لتعطيل XML-RPC لموقعك على الويب ، أضف سطور التعليمات البرمجية هذه إلى ملف oyur .htaccess:

 # Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all </Files> # END protect xmlrpc.php

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

فرض تنزيل الملفات

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

 AddType application/octet-stream .avi .mpg .mov .pdf .xls .mp4

إرسال رؤوس HTTP مخصصة

قد يرغب المستخدمون المتقدمون في أن يكونوا قادرين على إرسال رؤوس HTTP للعميل من خلال الاستفادة من توجيه Apache's Header. للقيام بذلك ، أضف التعليمات البرمجية التالية إلى ملف .htaccess الخاص بك.

 Header add my-custom-header "my custom header value"

سيخبر المثال أعلاه Apache بإضافة رأس يسمى "my-custom-header" لكل طلب إلى الخادم. إذا قمنا بتنفيذ هذا التحديث ثم تحققنا من علامة تبويب الشبكة في أدوات المتصفح ، يمكننا تأكيد استجابتها كما هو موضح أدناه.

رأسي المخصص

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

استنتاج

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