ماذا تعرف عن ملف htaccess؟

ملف htaccess هو اختصار لكلمتي hypertext access، ويعني الوصول إلى النص التشعبي. يستخدم هذا الملف للتحكم في إعدادات خادم الويب، وتكمن أهميته في القدرة على حماية موقعك من الاختراقات التي قد تدمر الموقع بالكامل، وغيرها من الأمور المهمة. إذًا، كيف تستخدم الملف على الوجه الأمثل؟ وماذا يقدم لك من إمكانات للتحكم في الخادم بصورة احترافية؟

جدول المحتويات:

ما الفرق بين ملف httpd.conf وملف htaccess؟

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

أما ملف htaccess فهو ملف يتبع نفس القواعد والأوامر لملف httpd.conf، ولكنه يقع في أسفل المجلد public_html. ويمكنه التحكم بإعدادات الوصول لهذا المجلد، وبكل ما هو أسفله من مجلدات وملفات. يتميز ملف httpd.conf بقدرته على منع الوصول إلى ملف htaccess عن طريق كتابة أمر منع، إذ أنه الملف الرئيسي للأوامر والذي تفوق قدراته ملف htaccess.

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

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

أين يوجد ملف htaccess؟

يوجد هذا الملف دائمًا بشكل مخفي على أي خادم من النوع Apache، ولهذا توجد نقطة أمام الملف، وهذه النقطة معروفة في جميع التوزيعات Distributions، والخوادم Servers، والمشروعات Projects، التي تتبع نظام تشغيل لينكس، وتدل على أن الملف مخفي وآمن.

أما عن مكان تواجده فهو يقع أسفل المجلد الأب المعروف public_html. ويمكنك رؤيته بعدة طرق، أحدها من خلال البرنامج المشهور لرفع الملفات للخادم Filezilla الذي يتبع بروتوكول FTP كما بالصورة التالية:

أين يوجد ملف htaccess؟

أهم أوامر ملف htaccess واستخدامها

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

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

من أهم الأوامر التي يمكن أن يحتويها ملف htaccess ما يلي:

1. أوامر إعادة التوجيه لعناوين URLs

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

Redirect /path-to-old-file.html /path-to-new-file.html.html

الأمر Redirect يعني إعادة التوجيه، و/path-to-old-file.html هو المسار القديم للصفحة المطلوب التوجيه منها، و/path-to-new-file.html هو المسار الجديد إلى الصفحة المطلوب التوجيه إليها.

للتوجيه من صفحة قديمة على موقع قديم إلى صفحة جديدة على موقع جديد يُكتب التالي:

Redirect /path-to-old-file.html https://new-site.com//path-to-new-file.html

يختلف هذا الأمر عن سابقه بإضافة عنوان الموقع مع عنوان الصفحة كالتالي: https://new-site.com/path-to-new-file.html والسبب وجودها على موقع آخر غير الموقع القديم.

كما يمكن توجيه رابط يظهر في جوجل لصفحة قديمة إلى صفحة على موقع جديد بكتابة التالي:

Redirect 301 /old-file.html https://new-site.com//path-to-new-file.html

يختلف هذا الأمر عن سابقيه بإضافة 301، والذي يعني أنه تم نقل الصفحة نقلًا دائمًا، لاحظ أن الأمرين السابقين لا يكتب بعد Redirect أي رقم لأن الرقم 302 يوضع افتراضيًا، ويعني أن الصفحة تم نقلها نقلًا مؤقتًا.

2. إنشاء صفحات خطأ مخصصة

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

يسمح لك الملف بإنشاء صفحات خطأ مخصصة لموقعك، مثل صفحات 404 المشهورة و400 و401 و403 و500 وغيرها ولعمل ذلك يكتب الأمر كالتالي:

ErrorDocument write-error-number-here path

الأمر ErrorDocument يعني إعادة توجيه ملف أو صفحة برقم خطأ معين، وwrite-error-number-here هو هذا الرقم، وPath هو المسار للصفحة المخصصة. في حالة عدم كتابة هذا الأمر يتم ظهور الصفحة الرئيسية للخطأ وليس الصفحة التي تخصصها أنت لذلك، كالمثال التالي:

ErrorDocument 404 /path-to-page-404.html

3. إجبار موقعك على استخدام HTTPS بدلًا من HTTP

لأمان الموقع يجب استخدام شهادات SSL التي تسمح بتواجد HTTPS قبل اسم النطاق، وللتوجيه له تستخدم الأوامر التالية:

RewriteEngine On

RewriteCond %{HTTPS} off

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

4. إيقاف وتأمين الأدلة Directories الموجودة على الخادم

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

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

deny from all

السطر الأول يسمح لك بمطابقة الملفات باستخدام أي تعبير يليه وهو هنا *.php، والذي يعني أي ملف ينتهي بامتداد php. أما deny from all فمعناها عدم السماح بالوصول من الكل إلى الملفات المطلوبة، وهي الملفات التي تم الإشارة لها في السطر السابق بـ *php.

5. منع الربط المضمن Inline linking

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

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://(www.)?Your-Domain.com/.*$ [NC]

RewriteRule .*.(gif|jpg)$ http://www.Your-Domain.com/image.jpe [R,NC,L]

إذا أردت السماح لموقع صديق باستخدام الصور ضع الأمر التالي:

RewriteCond %{HTTP_REFERER} !^http://(www.)?friend1domain.com(/)?.*$ [NC]

وهو يشبه السطر الرابع وهو شرط يسمح لأي موقع صديق بالارتباط الساخن بصور موقعك.

6. منع الوصول إلى ملف htaccess

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

AccessFileName mostql.access

تذكر أنه يتم كتابة هذا الأمر في ملف httpd.conf، وهذا التوجيه يعني اسم الملف الرئيسي للإعدادات والمسموح بالتعامل معه. يُنصح بعدم تغيير الاسم إلا إذا كنت على دراية تامة بما تفعل، ولا تنس تحديث أي إعدادات قمت بها بالاسم الجديد.

7. القدرة على حماية المجلدات بكلمة مرور

يحدث ذلك عن طريق إنشاء واستخدام ملف مساعد آخر وهو htpasswd، عن طريق الأوامر التالية:

AuthType Basic

AuthName "Restricted Area"

AuthUserFile /home/public_html/wp-admin/.htpasswd

require valid-user

يحدد التوجيه AuthType نوع مصادقة المستخدم للدليل Directory، فإن كان Basic فسوف يعتمد على تقييد الوصول، وإن كان none فسوف يسمح للوصول للمجلدات المطلوبة. التوجيه AuthName يحدد هل مسموح بالدخول بكلمة سر أم لا، كمثالنا هنا يستخدم Restricted Area وهذا يعني وجوب الدخول بكلمة سر.

التوجيه AuthUserFile يحدد موقع ملف مصادقة المستخدم، ويجب ألا يكون هذا الملف متاحًا عبر الإنترنت، ويعطى عنوان الملف وهو /home/public_html/wp-admin/.htpasswd.

يوجه الأمر require valid-user الخادم Apache إلى تنفيذ حماية بكلمة المرور، ويطلب كلمة مرور صالحة قبل السماح بالوصول.

8. حظر عنوان IP معين من الدخول إلى موقعك

في حالات كثيرة ربما تواجه محاولة اختراق لموقعك من عناوين IPs معينة، وبالتالي فأنت تحتاج لحظر مثل تلك العناوين. لعمل ذلك اتبع الأوامر التالية:

Order allow,deny

Allow from all

Deny from 219.5.0.0/16

Deny from 99.0.0/8

يخبر Order allow, deny خادم الويب الخاص بك أن قواعد السماح تتم معالجتها قبل قواعد الرفض. فإذا كان العميل لا يتطابق مع قاعدة السماح أو أنه يتطابق مع قاعدة الرفض، فسيتم رفض وصول العميل.

يعني Allow from all السماح للكل، ويعني Deny from 219.5.0.0/16 وDeny from 99.0.0/8 رفض العنوانين المذكورين وعدم السماح لهما بالوصول.

9. حماية ملف الإعدادات الخاص بووردبريس wp-config.php

يشمل ملف الإعدادات الخاص بووردبريس كلمة سر الدخول لقاعدة البيانات. من خلال ملف htaccess يتم حماية ملف الإعداد المشهور wp-config كالتالي:

order allow,deny

deny from all

10. زيادة حجم الملفات التي يمكن تحميلها مثل الصور

في كثير من الأحيان يتم تحديد حجم الملفات التي تُرفع إلى مواقع ووردبريس، مثل الصور والفيديوهات ولهذا فإذا أردت الزيادة فيمكنك استخدام الأوامر التالية:

php_value upload_max_filesize 30M

php_value post_max_size 30M

php_value max_execution_time 400

php_value max_input_time 400

التوجيه php_value يسهل الكثير من الأمور، مثل السماح برفع الملفات بحد أقصى upload_max_filesize 30M والحد الأقصى هو 30 ميجابايت.

11. أوامر التخزين المؤقت

تُستخدم لتحسين التخزين المؤقت Cache Schema وتعطيله لأي نوع معين من الملفات، وتفعيل التخزين المؤقت للمتصفح لمزيد من السرعة للموقع. لتفعيل ذاكرة التخزين المؤقت للصور لمدة شهر واحد تستخدم الأوامر التالية:

Header set Cache-Control "max-age=2592000"

لتفعيل ذاكرة التخزين المؤقت لملفات النصوص و CSS وجافا سكريبت لمدة أسبوع واحد:

Header set Cache-Control "max-age=604800"

يشبه هذا الأمر السابق ولكن على ملفات txt وpdf وcss وجافا سكريبت. لتفعيل ذاكرة التخزين المؤقت لملفات HTML لمدة يوم واحد:

Header set Cache-Control "max-age=43200"

كالأمرين السابقين ولكن يطبق على ملفات HTML.

طرق بديلة للتخزين المؤقت للملف

تسمح الأوامر التالية بتخزين الموارد مؤقتًا لفترة زمنية محددة على المتصفح:

ExpiresActive On

ExpiresDefault A604800

ExpiresByType image/x-icon A2419200

ExpiresByType application/x-javascript A2419200

ExpiresByType text/css A2419200

ExpiresByType text/html A300

12. إعادة توجيه الزوار إلى موقع مؤقت أثناء تطوير الموقع

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

Header set Cache-Control "max-age=5"

تؤدي الأوامر نفس التوجيه لملفات التخزين المؤقتة ولكن لكل أنواع الملفات على الموقع.

13. تعطيل التخزين المؤقت للنصوص والملفات الديناميكية الأخرى بشكل صريح

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

Header unset Cache-Control

أيضًا من خلال الأمر:

ExpiresActive Off

14. ضغط بعض الملفات الرئيسية مثل CSS و HTML وجافا سكريبت لزيادة سرعة الموقع

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

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript application/javascript

15. تعيين ملفات تعريف الارتباط

لتعيين ملف تعريف الارتباط cookies المشهورة، لتتبع ما يفعله العميل على موقعك مع المتغير، يتم كتابة التالي:

Header set Set-Cookie "language=%{lang}e; path=/;" env=lang

Code language: HTML, XML (xml)

لإنشاء ملف تعريف ارتباط على حاسوب العميل يتم كتابة التالي:

RewriteEngine On

RewriteBase /

RewriteRule ^(.*)(de|es|fr|it|ja|ru|en)/$ - [co=lang:$2:.your-server-name.com:7200:/]

16. تقييد الوصول إلى الشبكة المحلية

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

Order deny,allow

Deny from all

Allow from 192.168.0.0/33

نفس توجيهات حظر عنوان IP ولكن لعنوان محلي داخل الشركة.

17. حظر الروبوتات الضارة، وكسر الموقع والمتصفحات غير المتصلة بالإنترنت

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

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

RewriteBase /

RewriteCond %{HTTP_USER_AGENT} ^Anarchie [OR]

RewriteCond %{HTTP_USER_AGENT} ^ASPSeek [OR]

RewriteCond %{HTTP_USER_AGENT} ^attach [OR]

RewriteCond %{HTTP_USER_AGENT} ^autoemailspider [OR]

RewriteCond %{HTTP_USER_AGENT} ^Xaldon WebSpider [OR]

RewriteCond %{HTTP_USER_AGENT} ^Xenu [OR]

RewriteCond %{HTTP_USER_AGENT} ^Zeus.*Webster [OR]

RewriteCond %{HTTP_USER_AGENT} ^Zeus

RewriteRule ^.* - [F,L]

التوجيه RewriteCond هنا يحتوي على القائمة السوداء لمنع كل من يسرق الموارد من موقعك، وهي قائمة تم تحديدها بواسطة العاملين على خادم Apache لاستهداف الوكلاء السيئين عن طريق الاختبار وهي تحدد مسبقًا الزوار غير المرغوب فيهم.

18. إعداد الأمر CHMOD للملفات التي على الخادم بالطريقة التي تفضلها

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

احذر من تعيين الرقم 777 مع الأمر CHMOD الذي يعني السماح بالوصول للملف والكتابة عليه والقراءة منه وتنفيذه، لتفعيل الملفات التي تحتاج وصول للكتابة استخدم الرقم 766 بدلًا من 777، وللحفاظ على خصوصية بعض الملفات استخدم الرقم 400 مع الأمر CHMOD.

chmod .htpasswd files 640

chmod .htaccess files 644

chmod php files 600

في السطر الأول تعني الأرقام 640 أن المالك له أذونات قراءة وكتابة، والمجموعات لها حق القراءة، ولا يسمح للآخرين بأي حقوق على الملف، وهذا ينفذ على ملف htpasswd.

في السطر الثاني تعني الأرقام 644 السماح للمالك بالقراءة والكتابة وللآخرين بالقراءة فقط، ويتم تنفيذه على ملف .htaccess، السطر الثالث تعني الأرقام 600 يعني أن المالك فقط له حق القراءة والكتابة، وأي زائر آخر ليس له أي حقوق، وينفذ هذا الأمر على كل ملفات php.

19. تفعيل تشفير MD5 لحماية موقعك

التشفير من أهم الطرق المستخدمة لتأمين وحماية الخصوصية وحماية الهوية ومنع الابتزاز. أحد حلول التشفير القديمة لحماية الموقع هو MD5. ولكي تستخدمه اكتب الأمر التالي:

ContentDigest On

التوجيه ContentDigest يسمح أو يوقف التشفير بنظام MD5.

20. إعادة التوجيه لعنوان الموقع وصفحاته مع حذف www قبل بداية النطاق

يفضل الكثيرين عدم وجود www قبل اسم النطاق لسهولة الوصول ولعمل ذلك يتم التالي:

RewriteEngine on

Options +FollowSymLinks

RewriteCond %{HTTP_HOST} ^www.domain.tld$ [NC]

RewriteRule (.*) http://domain.tld/$1 [R=301,L]

21. تخصيص روابط Permalink بالطريقة التي تفضلها

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

RewriteEngine On

RewriteBase /

RewriteRule ^index.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

22. تصحيح عنوان URL تلقائيًا في حالة كتابته خطأ من قبل الزائر

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

CheckSpelling On

يعني CheckSpelling كما هو واضح تشغيل أو إيقاف برنامج فحص الأخطاء الإملائية.

23. إضافة شرطة مائلة إلى نهاية عنوان موقعك

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

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_URI} !#

RewriteCond %{REQUEST_URI} !(.*)/$

RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301]

24. صد هجمات القوة الغاشمة DoS

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

LimitRequestBody 10240000

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

تم النشر في: أدلة شاملة، ووردبريس منذ 3 أشهر

المصدر

كيفية-تصميم-موقع-إلكتروني-خطوة-بخطوة

كيفية تصميم موقع إلكتروني خطوة بخطوة

هل حان الوقت لإنشاء موقع إلكتروني لنشاطك التجاري؟ قد يباشر العديد من أصحاب الأعمال والمشاريع إلى البحث عن مطوّر مواقع بمجرد الرغبة ببناء موقعهم، متجاهلين