شرح تسريع مدونات ووردبريس







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


ضغط الملفات:

بخصوص عملية ضغط الملفات يوجد نوعين من الضغط وهما GZIP و DEFLATE. لاكن الضغط عن طريق GZIP هو أكتر فعالية لاكن قد لا يكون متوافق مع جميع المواقع.

سنقوم بطرح الطريقتين واختر انت التي تناسبك.

الضغط عن طريق GZIP

رمز PHP:

RewriteEngine on
#Check to see if browser can accept gzip files. If so and we have it – serve it!
ReWriteCond %{HTTP:accept-encodinggzip
RewriteCond 
%{HTTP_USER_AGENT} !Safari
#make sure there’s no trailing .gz on the url
ReWriteCond %{REQUEST_FILENAME} !^.+.gz$
#check to see if a .gz version of the file exists.
RewriteCond %{REQUEST_FILENAME}.gz -f
#All conditions met so add .gz to URL filename (invisibly)
RewriteRule ^(.+) $1.gz [QSA,L]
<
ifmodule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_keep_workfiles No
mod_gzip_can_negotiate Yes
mod_gzip_add_header_count Yes
mod_gzip_send_vary Yes
mod_gzip_command_version ‘
/mod_gzip_status’
mod_gzip_min_http 1000
mod_gzip_minimum_file_size 300
mod_gzip_maximum_file_size 512000
mod_gzip_maximum_inmem_size 60000
mod_gzip_handle_methods GET POST
mod_gzip_temp_dir 
/tmp
mod_gzip_item_include file 
.html$
mod_gzip_item_include file .php$
mod_gzip_item_include file .pl$
mod_gzip_item_include file .rb$
mod_gzip_item_include file .py$
mod_gzip_item_include file .cgi$
mod_gzip_item_include file .css$
mod_gzip_item_include file .js$
mod_gzip_item_include mime ^application/javascript$
mod_gzip_item_include mime ^application/x-javascript$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^httpd/unix-directory$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include handler ^server-status$
mod_gzip_item_include handler ^server-info$
mod_gzip_item_include handler ^application/x-httpd-php
mod_gzip_item_exclude mime 
^image/.*
</
ifmodule

الضغط عن طريق DEFLATE

رمز PHP:
 # MOD_DEFLATE COMPRESSION
 
SetOutputFilter DEFLATE
 AddOutputFilterByType DEFLATE text
/html text/css text/plain text/xml application/x-javascript application/x-httpd-php
 
#Pour les navigateurs incompatibles
 
BrowserMatch ^Mozilla/4 gzip-only-text/html
 BrowserMatch 
^Mozilla/4\.0[678no-gzip
 BrowserMatch 
\bMSIE !no-gzip !gzip-only-text/html
 BrowserMatch 
\bMSI[E] !no-gzip !gzip-only-text/html
 
#ne pas mettre en cache si ces fichiers le sont déjà
 
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
 
#les proxies doivent donner le bon contenu
 
Header append Vary User-Agent env=!dont-vary 

إستخدام الكاش

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

رمز PHP:
# BEGIN Expire headers
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault 
"access plus 7200 seconds"
ExpiresByType image/jpg "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
AddType image/x-icon .ico
ExpiresByType image
/ico "access plus 2592000 seconds"
ExpiresByType image/icon "access plus 2592000 seconds"
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType text/css "access plus 2592000 seconds"
ExpiresByType text/javascript "access plus 2592000 seconds"
ExpiresByType text/html "access plus 7200 seconds"
ExpiresByType application/xhtml+xml "access plus 7200 seconds"
ExpiresByType application/javascript A259200
ExpiresByType application
/x-javascript "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
</IfModule>
# END Expire headers 
رمز PHP:
# BEGIN Cache-Control Headers
<IfModule mod_headers.c>
<
FilesMatch "\\.(ico|jpe?g|png|gif|swf|gz|ttf)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
<
FilesMatch "\\.(css)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
<
FilesMatch "\\.(js)$">
Header set Cache-Control "max-age=2592000, private"
</FilesMatch>
<
filesMatch "\\.(html|htm)$">
Header set Cache-Control "max-age=7200, public"
</filesMatch>
# Disable caching for scripts and other dynamic files
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>
</
IfModule>
# END Cache-Control Headers 

تعطيل ETAGS

Etags تسمح للمتصفح بالاتصال بالخادم لمعرفة أن كان أحد الملفات قد تم التعديل عليه منذ أخر مرة.

بما أننا قمنا بتحديد مدة صلاحية الكاش فهذه المعلومات التي يطلبها المتصفح غير ضرورية بالمرة.

في حال لم نقم بتعطليها فسنقوم فقط باستنزاف الباندوث وتقوم بتبطئة الموقع.

لذلك من المستحسن تعطيلها.

رمز PHP:
# KILL THEM ETAGS
 
Header unset ETag
 FileETag none 

كانت هذه فقط بعظ الطرق المفيدة فيما يتعلق بتسريع مدونة ووردبريس و المواقع بشكل عام, يوجد عدة طرق اخر منها استخدام إضافات الكاش بالنسبة للورد بريس و استخدام CDN كـ cloudflare وهي خدمة تقوم بتخزين موقعك و تقوم بإرساله للزائر من أقرب نقطة إليه.سنعود الى شرح طرق أخرى في شروحات قادمة إن شاء الله.شكرا على المتابعة.


https://www.traidnt.net/vb/traidnt2582151/