يعد ملف htaccess. ملفًا أساسيًا مهمًا في WordPress يتم استخدامه غالبًا لإضافة وتعديل أوامر معينة على مستوى الخادم لتحسين الأمان والأداء.
في كثير من الحالات ، يمكنك حل العديد من المشكلات والتحديات التشغيلية على مستوى الخادم ببساطة عن طريق تحديث / تغيير القواعد في ملف .htaccess في WordPress. ومع ذلك ، فإن العديد من مالكي مواقع الويب لا يدركون الإمكانات الكاملة لـ .htaccess لـ WordPress وبالتالي يفوتون تحسين الخادم (والموقع الإلكتروني) على أكمل وجه.
لمساعدة كل هؤلاء WordPressers ، سأقوم بتسليط الضوء على العديد من الأشياء المثيرة للاهتمام التي يمكنك تحقيقها باستخدام ملف htaccess. في WordPress.
ما هو ملف htaccess.؟
ملف htaccess. هو غرفة التحكم لموقع الويب الخاص بك الذي يحتوي على القواعد الأساسية التي تحكم جميع الاتصالات مع خادم استضافة الويب WordPress الخاص بك ويمكن استخدامه في تحسين سرعة الموقع . على وجه الخصوص ، يمكنك استخدام ملف htaccess. في WordPress لمهام مثل التحكم في الوصول إلى صفحات مواقع الويب وتحسين الأمان والأداء في خادم الانترنت الخاص بك. يمكن وضعها في أي مجلد في موقع الويب لتغيير صلاحيات هذا المجلد.
تحذير
أي خطأ في ملف .htaccess قد يؤدي الى توقف عمل موقعك لذلك كن حريص على أخذ نسخة احتياطية من الملف.
ملف .htaccess الافتراضي في WordPress
يأتي ملف .htaccess مع كل تثبيت لبرنامج WordPress ويكون موجودًا بشكل عام في الدليل الجذر. نظرًا لأهمية الملف ، قد يقوم النظام بإخفاء الملف ولكن تستطيع اظهاره عن طريق اظهار الملفات المخفية.
الشكل الافتراضي لملف .htaccess
RewriteEngine On RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> |
كيفية تحرير ملف htaccess. في ووردبريس؟
- عن طريق الإضافات مثل إضافة htaccess file editor أو إضافة yoast من قائمة أدوات تحرير ملف.
- استخدام الدخول إلى ملف الجذر لموقعك ، تستطيع استخدام FileZilla للدخول FTP الى ملفات الجذر.
- الوصول إلى ملفات الجذر عن طريق إضافة File manager.
للحماية وتأمين ملفات الموقع
تستطيع أن تستخدم الكثير من الأوامر في ملف htaccess. التي ستعمل على حماية موقعك.
الخطوة 1. حماية ملف wp-config.php
في ملف htaccess. للجذر الرئيسي سنقوم بحماية ملف wp-config من المخترقين علاوة على ذلك تأمين الملف ستقوم بإضافة الأوامر الاتية:
<files wp-config.php> order allow,deny deny from all </files> |
حاول فتح yourdomain/wp-content/plugins
URL في متصفحك وهذا شيء يجب ألا تراه لأنها ملفات مهمة للموقع. الخطوة 2 تعطيل تصفح المجلدات
عادة ما يكون index.php
ملف فارغ في /wp-content/plugins/
، /wp-content/themes/
و /wp-content/uploads
.
ولكن ماذا عن جميع الدلائل التي يريد المخترقون وضع باتش بها نحن نريد أن نحمي تلك الملفات من عبثهم.
قم بإضافة الأمر التالي في ملف htaccess. الخاص بمجلد تثبيت WordPress الخاص بك:
Options -Indexes
الآن ، عندما يحاول شخص ما الوصول إلى dirs الخاص بك مباشرة ، سيحصل على «403 Forbidden».
الخطوة 3 حماية .htaccess من الوصول غير المصرح به
لحمايته من الوصول غير المصرح به من قبل المتسللين ، يمكنك منعهم من الوصول إلى الملف عبر هذا الأمر:
<files ~ “^.*\.([Hh][Tt][Aa])”> order allow,deny deny from all satisfy all </files> |
الخطوة 4 تقييد الوصول إلى المجلد / wp-include /
يحتوي المجلد / wp-include / على ملفات WordPress الأساسية. لا يوجد سبب وجيه لأي شخص للوصول ، بما في ذلك المالك والمسؤول. لذلك لتعزيز الأمان ، من الأفضل تقييد الوصول إليه بالكامل.
قم بإضافة الأوامر الأتية في ملف htaccess. الخاص بمجلد / wp-include /
# Blocks all wp-includes folders and files <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> |
الخطوة 5 تأمين الملفات المهمة
يمكنك استخدام ملف htaccess. في WordPress لحماية الملفات المهمة مثل سجلات الأخطاء و wp-config.php و php.ini. لهذا ، استخدم الأوامر التالية:
<FilesMatch “^.*(error_log|wp-config\.php|php.ini|\.[hH][tT][aApP].*)$”> Order deny,allow Deny from all </FilesMatch> |
لتحسين سرعة الموقع
العديد من الأوامر تستطيع إضافتها داخل ملف htaccess. لتحسين أداء موقعك مثل التخزين المؤقت علاوة على ذلك إضافة أوامر الكاش.
أوامر التخزين المؤقت
ما هي Expires Headers
تخبر Expires Headers المتصفح بما إذا كان يجب عليه طلب ملف معين من الخادم أو ما إذا كان يجب عليه الحصول عليه من ذاكرة التخزين المؤقت للمتصفح.
الفكرة الكاملة وراء Expires Headers هي تقليل عدد مرات تنزيل الملف من الخادم والسماح للمتصفح باستخدام إصدار سابق من ملف تم حفظه بالفعل على جهاز الكمبيوتر الخاص بك. يؤدي القيام بذلك إلى تقليل عدد طلبات HTTP للخادم عندما يعود شخص ما إلى موقع الويب الخاص بك لأنك قادر على إعادة استخدام الإصدار الذي تم تنزيله مسبقًا من نفس الملف.
ملفات صفحات الويب
استمرت صفحات الويب في النمو من حيث التعقيد مع تنزيل العديد من الملفات على كل صفحة ؛ HTML و CSS و JavaScripts والرسومات والصور وملفات PDF وحتى التطبيقات وأحيانًا ما يصل إلى 25 عنصرًا في كل صفحة. عندما تزور موقعًا إلكترونيًا لأول مرة في متصفحك ، يتم طلب كل هذه الملفات من الخادم. كل طلب يستغرق وقتًا ويمكن أن يضيف ما يصل.
من خلال إعادة استخدام النسخ المخبأة من هذه الملفات عند تكرار الزيارات إلى الموقع ، فإنك تقلل عدد الطلبات الخارجة إلى الخادم وتقليل الوقت الذي سيتم فيه تحميل صفحة الويب. أوقات التحميل الأسرع تعني تصفحًا سعيدًا!
كيف تعمل Expires Headers؟
تخبر Expires Headers مستعرض الويب بمدة تخزين الملف في ذاكرة التخزين المؤقت. يعني الاحتفاظ بالملفات في ذاكرة التخزين المؤقت لجهاز الكمبيوتر الخاص بك في الزيارات المستقبلية لتلك الصفحة أن المتصفح لن يحتاج إلى تنزيل الملف مرة أخرى.
ملاحظة: لا تعمل Expires Headers على تحسين سرعة الصفحة للزيارة الأولى ، بعد كل شيء تحتاج إلى تنزيل الملفات مرة واحدة على الأقل للرجوع إليها مرة أخرى. ولكن بالنسبة للزوار العائدين ، ستكون أوقات تحميل الصفحة أسرع.
يمكن تعيين Expires Headers على أنواع الملفات أو ملفات معينة. عندما يصل المتصفح إلى موقع الويب ، يمكنه معرفة متى كانت آخر مرة قام فيها بتنزيل أنواع الملفات المحددة.
إذا تم عرضها مؤخرًا ، فسيتم عرضها من ذاكرة التخزين المؤقت ، وإذا لم تقم بزيارة الموقع منذ فترة ، فسيتم تنزيل أحدث إصدار من خادم الويب. إذا كان الملف مفقودًا من ذاكرة التخزين المؤقت ، فسيتم تنزيله من الخادم.
بالنسبة للعناصر التي نادرًا ما تتغير على موقعك ، مثل شعارك أو رمزك المفضل ، يمكنك تعيين الصور بحيث تنتهي صلاحيتها لاحقًا.
بالنسبة للعناصر التي تميل إلى التغيير في كثير من الأحيان ، يمكنك تقصير الوقت. مرة أخرى ، يمكنك القيام بذلك على أساس كل ملف أو نوع الملف.
كيفية إضافة Expires Headers إلى ملف htaccess.
أولاً ، تحتاج إلى تحديد الملفات التي تقوم بتحديثها كثيرًا وأنواع الملفات التي لا يتم تحديثها كثيرًا.
فيما يلي قائمة شائعة لأنواع الملفات التي يجب تضمينها:
- images: jpg, jpeg, gif, png, svg, webp
- favicon/ico
- javascript
- css
- shockwave-flash
انتقل الآن إلى أنواع الملفات هذه وفكر في عدد المرات التي تقوم فيها بتغيير كل منها. عادةً لا يتم تغيير الصور في كثير من الأحيان (ضع في اعتبارك أننا نتحدث عن الصور الموجودة) لا يتم تغيير الرمز المفضل تقريبًا ، ويتم تغيير جافا سكريبت أحيانًا ويتم تغيير CSS في أغلب الأحيان.
يتم تعريف Expires Headers في ملف htaccess. لمواقع WordPress.
هذا ملف مخفي غالبًا ما يوجد في جذر موقع الويب الخاص بك (عبر FTP). قبل أن تفعل أي شيء ، قم بعمل نسخة احتياطية من هذا الملف قبل تغيير أي شيء.
أوامر Expires Header
<IfModule mod_expires.c> ExpiresActive on ExpiresDefault “access plus 1 month” # cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5) ExpiresByType text/cache-manifest “access plus 0 seconds” # Your document html ExpiresByType text/html “access plus 0 seconds” # Data ExpiresByType text/xml “access plus 0 seconds” ExpiresByType application/xml “access plus 0 seconds” ExpiresByType application/json “access plus 0 seconds” # Feed ExpiresByType application/rss+xml “access plus 1 hour” ExpiresByType application/atom+xml “access plus 1 hour” # Favicon (cannot be renamed) ExpiresByType image/x-icon “access plus 1 week” # Media: images, video, audio ExpiresByType image/gif “access plus 4 months” ExpiresByType image/png “access plus 4 months” ExpiresByType image/jpeg “access plus 4 months” ExpiresByType image/webp “access plus 4 months” ExpiresByType video/ogg “access plus 4 months” ExpiresByType audio/ogg “access plus 4 months” ExpiresByType video/mp4 “access plus 4 months” ExpiresByType video/webm “access plus 4 months” # HTC files (css3pie) ExpiresByType text/x-component “access plus 1 month” # Webfonts ExpiresByType font/ttf “access plus 4 months” ExpiresByType font/otf “access plus 4 months” ExpiresByType font/woff “access plus 4 months” ExpiresByType font/woff2 “access plus 4 months” ExpiresByType image/svg+xml “access plus 1 month” ExpiresByType application/vnd.ms-fontobject “access plus 1 month” # CSS and JavaScript ExpiresByType text/css “access plus 1 year” ExpiresByType application/javascript “access plus 1 year” </IfModule> |
ضغط الملفات Gzip
يعد تمكين ضغط GZIP على خادم الويب من أسهل طرق تسريع موقع WordPress وهي مهمة للغاية.
مع أن الان أصبح الأفضل أن تستخدم في الضغط نظام Brotli هو الأسرع الان والأفضل ولكن الكثير من الاستضافات تستخدم على خوادمها نظام Gzip إذا كنت على إستضافة Hostgad فستجد نظام الضغط الأسرع Brotli وسيكون هناك من يقوم بكل الإجراءات لتفعيله.
ونظراٌ لاستخدام الكثير من الاستضافات نظام Gzip سنقوم بشرح كيفية الاستفادة منه.
قم بإضافة الأوامر التالية في ملف htaccess.
<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 ancient 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. اذا واجهتك أي مشكلة قم بالتحدث مع الدعم الفني الخاص بنا نحن نقدم المساعدة مجانا لا يشترط أن تكون على إستضافة هوست جاد لطلب المساعدة نحن نقدمها مجانا للجميع نتمنى لك التوفيق.