htaccess هو ملف تكوين على مستوى الدليل يدعمه خادم الويب Apache.
يتم استخدامه لتغيير تكوين خادم الويب (تمكين أو تعطيل ميزات إضافية) لحساب معين دون تغيير إعدادات الخادم العالمية.
يصبح ملف .htaccess ساري المفعول على الدليل بأكمله الذي تم وضعه فيه، بما في ذلك جميع الملفات والأدلة الفرعية.
سيتم تنفيذ التغييرات التي تم إجراؤها في هذا الملف على الفور ولن يلزم إعادة تشغيل الخادم.
كيفية تحديد موقع ملف .htaccess
قائمة قواعد .htaccess شائعة الاستخدام:
- التفويض/المصادقة
- الحظر
- صفحات الأخطاء المخصصة
- Mod_Rewrite (قواعد إعادة التوجيه)
- تغيير الدليل الجذر المجال
تعطيل قواعد .htaccess الحالية
للوصول إلى ملف .htaccess الرئيسي لحساب الاستضافة الخاص بك، اتبع الخطوات التالية:
- قم بتسجيل الدخول إلى cPanel الخاص بك .
- انتقل إلى قسم الملفات >> مدير الملفات :
- إذا كنت ترغب في تحرير ملف .htaccess لنطاقك الرئيسي، فانتقل إلى المجلد public_html
إذا كنت بحاجة إلى إجراء بعض التغييرات على النطاق الإضافي، فانتقل إلى المجلد public_html/youraddondomain.com .
بمجرد الوصول إلى هناك، تأكد من تمكين خيار إظهار الملفات المخفية (dotfiles) في قائمة الإعدادات :
- حدد موقع ملف .htaccess ، وانقر بزر الماوس الأيمن >> تحرير :
- إذا لم يكن هناك ملف .htaccess موجود في مدير الملفات لديك، فلا تتردد لإنشاء قاعدة جديدة باستخدام خيار الملف :
أنت جاهز لإضافة قواعد التكوين الخاصة بك وحفظها.
قواعد الاستخدام الشائعة لملف .htaccess مدرجة أدناه:
التفويض/المصادقة - يحدد القيود الأمنية للدليل/الدليل الفرعي.
يمكنك حماية دليل ما أو العديد منه بكلمة مرور، وفي أي وقت يحاول فيه الزائر الوصول إليه، سيكون اسم المستخدم وكلمة المرور مطلوبين.
لإعداد مثل هذه الحماية، تحتاج إلى:
- قم بإنشاء الدليل الذي تريد حمايته في المجلد /home/cpanel_user/.htpasswds/ (على سبيل المثال، بالنسبة إلى public_html/test، سيكون المسار هو .htpasswds/public_html/test/).
- أنشئ ملف passwd في هذا الدليل وأضف تفاصيل الوصول المجزأة باستخدام هذا المولد عبر الإنترنت .
- أضف التوجيهات التالية إلى .htaccess:
AuthType Basic
AuthName "اسم الدليل"
AuthUserFile "/home/cpanel_user/.htpasswds/public_html/test/passwd"
تتطلب مستخدمًا صالحًا
الحظر – حظر المستخدمين عن طريق عنوان IP أو النطاق.
من المفيد جدًا حظر الزوار غير المرغوب فيهم أو السماح بالوصول إلى أقسام معينة من موقع الويب بواسطة مالكه أو منطقة الإدارة على سبيل المثال.
لإعداد قواعد حظر معينة، قم بإنشاء ملف .htaccess بالنص التالي:
- للسماح بالوصول إلى أي شخص آخر وحظر المستخدمين بعنوان XXXX IP
<RequireAll>
يتطلب كل الممنوحة
لا يتطلب IP XXXX
</RequireAll>
- لحظر جميع الزوار باستثناء XXXX وYYYY IPs المحددين
<RequireAll>
يتطلب كل الرفض
يتطلب IP XXXX
يتطلب IP YYYY
</RequireAll>
ملاحظة: لا تخلط بين توجيهات " السماح " و "الرفض " و "الطلب" المهملة مع توجيه "الطلب" الجديد .
صفحات الخطأ المخصصة – تسمح بإنشاء صفحات خطأ مخصصة لموقع ما.
يعد هذا الخيار مفيدًا جدًا لأنه يسمح لك بإظهار رسالة خطأ لزوار موقع الويب تتوافق مع موضوع موقع الويب الخاص بك إذا كان عنوان URL على موقع الويب الخاص بك لا يعمل.
يساعد هذا على تجنب الخطأ الافتراضي "404 File Not Found"
على سبيل المثال ويسمح لك بعرض خطأ مصمم خصيصًا مع التوجيهات الإرشادية مرة أخرى في محتوى موقع الويب الخاص بك، بدلاً من تركه في حيرة.
لإعداد مستند خطأ مخصص، قم بإنشاء ملف .htaccess بالنص التالي أدناه:
خطأ الوثيقة 404 /404.html
عندما يظهر خطأ 404 (لم يتم العثور على الملف)، يخبر هذا السطر خادم الويب Apache بتحميل ملف 404.html الموجود في جذر الدليل للمجال الذي قمت بتعيين صفحة الخطأ له.
ملاحظة : لإعداد مستند للأخطاء الأخرى (403، 500، وما إلى ذلك)، ما عليك سوى استبدال 404 برمز الخطأ المقابل و/404.html بالمسار إلى ملف الخطأ.
Mod_Rewrite – يحدد كيفية عرض صفحات الويب وعناوين URL للزائرين.
نود أن نلفت انتباهك إلى استخدام قواعد Mod_Rewrite في ملف htaccess.
افتراضيًا، يقوم Mod_Rewrite بتعيين عنوان URL لمسار نظام الملفات، ومع ذلك، يمكن استخدامه أيضًا لإعادة توجيه عنوان URL إلى عنوان URL آخر.
قبل إنشاء عملية إعادة توجيه، يجب عليك اختيار نوع إعادة التوجيه الذي سيكون أكثر تفضيلاً بالنسبة لك:
- تحتوي عملية إعادة التوجيه الدائمة على رمز الحالة 301، وعلى عكس الرمز المؤقت، يتم تخزينها مؤقتًا في ذاكرة المتصفح.
إنه يعني أنه تم نقل الصفحة ويطلب من جميع محركات البحث ووكيل المستخدم القادمين إلى الصفحة تحديث عنوان URL في قاعدة البيانات الخاصة بهم، هذا هو النوع الأكثر شيوعا من إعادة التوجيه.
- إعادة التوجيه المؤقتة تعني أن الصفحة ترسل رمز الحالة 302 إلى المتصفح، يخبر الرمز 302 المتصفح بعدم تخزين عملية إعادة التوجيه هذه مؤقتًا في بياناته المحفوظة.
سيقوم بإعادة توجيه الزائر أو محرك البحث، لكن محرك البحث سيستمر في الفهرسة إلى الصفحة الأصلية. هذا هو نوع إعادة التوجيه الموصى به،
إلا إذا كنت متأكدًا تمامًا من أنك لن تغيره أبدًا في المستقبل.
يمكن العثور أدناه على قائمة عمليات إعادة التوجيه الأكثر شيوعًا وإفادة، والتي يمكن تعيينها من خلال ملف .htaccess (يجب استبدال النطاقات المحددة في الأمثلة بنطاقاتك الخاصة):
إعادة التوجيه الدائم من example.com إلى domain.com
RewriteEngine على
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ "http\:\/\/domain\.com/ $1" [R=301,L]
إعادة التوجيه المؤقتة من example.com إلى domain.com
RewriteEngine على
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ "http\:\/\/domain\.com\ /" [ص = 302، ل]
ملاحظة : فيما يلي أمثلة لعمليات إعادة التوجيه الدائمة. يمكن تعريف الرمز المؤقت عن طريق استبدال [R=301,L] بـ [R=302,L] في نهاية الكود (عند الضرورة).
إعادة التوجيه من example.com/subfolder إلى domain.com
RewriteEngine على
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^subfolder/$ "http\:\/\/domain\.com\/" [ص = 301، ل]
إعادة التوجيه من HTTP إلى HTTPS على example.com
RewriteEngine عند
RewriteCond %{HTTPS} !=on
RewriteRule .* https://example.com%{REQUEST_URI} [R,L]
أو
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^example\.com$ [أو]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ https://www.example.com /$1 [ص، ل]
إعادة التوجيه من غير WWW إلى WWW
- لأي مجال، يصبح htaccess ساري المفعول على:
RewriteEngine على
RewriteCond %{HTTP_HOST} !^www\.
قاعدة إعادة الكتابة ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
- لنطاق معين، example.com:
RewriteEngine على
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
إعادة التوجيه من WWW إلى غير WWW
- لأي مجال، يصبح htaccess ساري المفعول على:
RewriteEngine قيد التشغيل
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
- لنطاق معين، example.com:
RewriteEngine على
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule (.*) http://example.com/$1 [R=301,L]
قم بإعادة توجيه جميع صفحات example.com إلى صفحات domain.com المقابلة
إعادة التوجيه 301 ^/(.*)$ http://domain.com/$1
ملاحظة : يجب أن تتطابق جميع أسماء الصفحات في كلا النطاقين وإلا ستؤدي إعادة التوجيه إلى ظهور رسالة "لم يتم العثور على الصفحة" على موقع الويب المستهدف.
إعادة توجيه صفحة واحدة إلى عنوان URL جديد
إعادة توجيه 301 /old_page.html http://www.domain.com/new_page.html
ملاحظة : قد يكون هذا مفيدًا عندما تريد إعادة توجيه صفحة محذوفة إلى خطأ 404 أو لأغراض تحسين محركات البحث بعد تحديث مراجع المحتوى.
يغير جذر الدليل للمجال الرئيسي إلى public_html/subfolder
RewriteEngine على
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ subfolder/index.php [L]
ملاحظة : يجب أن يكون ملف .htaccess موجودًا في جذر الدليل للمجال الذي ترغب في تكوين قواعد معينة له.
تعطيل قواعد htaccess الموجودة
إذا كنت بحاجة إلى تعطيل بعض القواعد الحالية، على سبيل المثال، لأغراض الاختبار، فيمكنك ببساطة التعليق عليها. وللقيام بذلك، قم بإضافة علامة الجنيه # في بداية كل سطر من القاعدة.
ومن الممكن أيضًا تعطيل الخط أو حتى مجموعة الخطوط عن طريق تحديد الخطوط واستخدام الاختصار Ctrl + / .