ملف التكوين htaccess. وحدة إعادة كتابة وزارة الدفاع

Htaccess (مع نقطة في بداية الاسم) هو ملف يتيح لك تكوين تشغيل الخادم في أدلة (مجلدات) منفصلة، ​​دون توفير الوصول إلى ملف التكوين الرئيسي. على سبيل المثال، قم بتعيين حقوق الوصول إلى الملفات الموجودة في الدليل، وتغيير أسماء ملفات الفهرس، والتعامل بشكل مستقل مع أخطاء Apache، وإعادة توجيه الزائرين إلى صفحات خاصةأخطاء.

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

يمكن وضع ملف .htaccess في أي دليل. تؤثر توجيهات هذا الملف على كافة الملفات الموجودة فيه الدليل الحاليوفي جميع الدلائل الفرعية الخاصة به (ما لم يتم تجاوز هذه التوجيهات بتوجيهات ملفات .htaccess الأساسية).

التغييرات التي تم إجراؤها على ملفات .htaccess تسري على الفور ولا تتطلب إعادة تشغيل الخادم، على عكس التغييرات التي تم إجراؤها على ملف التكوين httpd.conf الرئيسي.

إعدادات httpd.conf التي تسمح باستخدام ملفات .htaccess

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

يمكن أن يتضمن توجيهallowOverride واحدًا أو مجموعة من التوجيهات التالية: الكل، لا شيء، AuthConfig، FileInfo، Indexes، Limit، Options.

من أجل منح توجيهات ملفات .htaccess الحد الأقصى من الحقوق، يجب عليك تعيين ما يلي في httpd.conf:

السماح بتجاوز الكل

ملحوظة

إذا رغبت في ذلك، يمكن تغيير اسم ملف التكوين، على سبيل المثال، لا يطلق عليه .htaccess، ولكن Access.conf. يتم تحديد اسم هذا الملف بواسطة توجيه AccessFileName في الملف httpd.conf. ولكن لا يزال من المستحسن عدم القيام بذلك.

Syntax.htaccess

قبل أن ننظر إلى الأمثلة، دعونا نلقي نظرة على بناء جملة التوجيهات في ملفات .htaccess.

  • يجب تحديد المسارات إلى الملفات والأدلة من جذر الخادم، على سبيل المثال، /pub/home/server1/html/

إذا كنت لا تعرف المسار من جذر الخادم، فيمكنك معرفة ذلك عن طريق سؤال مسؤول الخادم، أو يمكنك البحث عنه بنفسك عن طريق التشغيل على موقع الويب وظيفة PHP- فبينفو (). سيتم عرضه تكوين PHPعلى شكل طاولات أرجوانية. تحتاج فيها إلى العثور على المتغير doc_root وإلقاء نظرة على قيمته - سيكون هذا هو المسار من جذر الخادم إلى الدليل الرئيسي الخاص بك.

  • يجب أن تتضمن أسماء النطاقات بروتوكولات، على سبيل المثال:

أمثلة على استخدام .htaccess

إعادة التوجيه الشامل (إعادة التوجيه) إلى عنوان آخر:

إعادة توجيه / http://www.newsite.ru

إعادة التوجيه (إعادة التوجيه) فقط عند طلب صفحات معينة:

إعادة توجيه /الشركة http://www.newsite.com/newcompany
إعادة توجيه /forum http://www.newsite.com/newforum

عند طلب صفحات من دليل الشركة والمنتدى، سيتم إعادة توجيهك إلى عناوين جديدة.

إعادة توجيه (إعادة توجيه) الزائرين الذين لديهم عنوان IP محدد فقط:

SetEnvIf REMOTE_ADDR 192.145.121.1 REDIR = "redir"
إعادة كتابة Cond %(REDIR) redir
قاعدة إعادة الكتابة ^/$ /only_for_you.html

إذا كان لدى الزائر عنوان IP هو 192.145.121.1، فسيتم فتح صفحة Only_for_you.html له.

تغيير اسم صفحة الفهرس:

DirectoryIndex فهرس.html فهرس.php فهرس.shtml

يمكنك تحديد صفحات فهرس متعددة. عندما تطلب دليلاً، سيتم البحث فيه بالترتيب الذي تم إدراجه به توجيه فهرس الدليل. إذا لم يتم العثور على الملف Index.html، فسيتم البحث في الملف Index.php، وما إلى ذلك.

تنفيذ كود PHP في ملفات HTML

RemoveHandler.html.htm
تطبيق AddType/x-httpd-php .php .htm .html .phtml

من خلال إضافة هذه السطور إلى .htaccess، ستوجه الخادم لتنفيذ تعليمات PHP ليس فقط في الملفات ذات الامتدادات *.php و*.phtml، ولكن أيضًا في الملفات ذات الامتدادات *.htm و*.html.

معالجة أخطاء أباتشي

خطأ الوثيقة 401 /401.html
خطأ الوثيقة 403 /403.html
خطأ الوثيقة 404 /404.html
خطأ الوثيقة 500 /500.html

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

  • خطأ 401 - التفويض مطلوب.
  • خطأ 403 - لم يقم المستخدم باجتياز المصادقة، وتم رفض الوصول (ممنوع).
  • خطأ 404 - لم يتم العثور على المستند.
  • 500 خطأ - خطأ داخليخوادم ( الخادم الداخليخطأ).

حظر عرض محتويات الدليل في حالة عدم وجود ملف فهرس

الخيارات – الفهارس

تحديد الترميز الذي "يرسل" به الخادم الملفات

AddDefaultCharset windows-1251

تحديد الترميز للملفات التي تم تنزيلها

CharsetSourceEnc ويندوز-1251

رفض الوصول إلى كافة الملفات

رفض من الجميع

تم رفض الوصول إلى كافة الملفات والدلائل الموجودة في الدليل الحالي.

السماح بالوصول فقط من عنوان IP محدد

رفض الأمر، السماح
رفض من الجميع
السماح من 195.135.232.70

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

165

Htaccess - الاستخدام وبناء الجملة

تقييمك: تحفة رائعة جيدة جدا جيدة عادية لم أقرأها مقبولة متوسطة سيئة سيئة جدا لا تقرأها

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

يؤثر الملف على الدليل الحالي (حيث يوجد) وجميع الدلائل "أدناه"، أي. جميع الدلائل الفرعية، ما لم يكن لديهم ملف .htaccess الخاص بهم محددًا.

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

قواعد الكتابة

يتم تحديد توجيهات الملف واحدًا لكل سطر.

تبدأ جميع المسارات من جذر الموقع (وليس من الجذر نظام الملفاتالخادم!)

على سبيل المثال، إذا الملف المطلوبعلى الخادم على طول المسار /var/www/mysite.ru/mydir/file.html، فسيكون المسار الصحيح هو /mydir/file.html

إذا تم تنفيذ إشارة URL، فيجب أن تتم الإشارة باستخدام إشارة البروتوكول.

على سبيل المثال، إذا كان هناك إعادة توجيه إلى الموقع www.mysite.ru، فأنت بحاجة إلى تحديد http://www.mysite.ru

التعليقات هي كل شيء بعد الرمز #

في التعبيرات التي يمكنك استخدامها متغيرات البيئة. قائمة الأكثر استخداما هي أدناه.

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

متغيرات البيئة

على الرغم من أنه ليس في كثير من الأحيان، لا يزال من الممكن استخدام متغيرات البيئة في ملف .htaccess. بعضها مذكور أدناه (بفضل موقع htaccess.net.ru):

  • QUERY_STRING (معلمات الاستعلام)
  • REMOTE_ADDR (عنوان IP الخاص بالزائر)
  • REMOTE_HOST (اسم مضيف الزائر)
  • REMOTE_USER (اسم المستخدم إذا تمت مصادقته)
  • REMOTE_METHOD (طريقة المتصفح - GET أو POST)
  • PATH_INFO (مسار ملف صفحة الويب)
  • HTTP_USER_AGENT (محتوى رأس وكيل المستخدم - نوع المتصفح)
  • HTTP_REFERER (محتوى الرأس المرجعي)
  • HTTP_COOKIE (محتوى رأس ملف تعريف الارتباط)
  • HTTP_HOST (اسم مضيف موقع الويب)
  • TIME_YEAR (السنة، الشهر، الخ.)
  • TIME_MONTH
  • اليوم الساعة
  • TIME_HOUR
  • TIME_MIN
  • TIME_SEC
  • TIME_WDAY
  • REQUEST_URI (عنوان URL المطلوب)
  • REQUEST_FILENAME (الملف المطلوب)
  • THE_REQUEST (الطلب الكامل)

التعبيرات العادية في .htaccess

يمكنك استخدام التعبيرات العادية في هذا الملف. بناء الجملة الخاص بهم موضح أدناه. بفضل موقع htaccess.net.ru

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

  • تستخدم الأقواس () للفصل بين مجموعات الأحرف.
  • يمثل الحرف ^ بداية السطر.
  • يشير الحرف $ إلى نهاية السطر.
  • رمز. لتقف على أي شخصية.
  • الرمز | يدل على بديل. على سبيل المثال، التعبيران "A|B" و"(ABC|DEF)" يعنيان "A أو B" و"ABC أو DEF"، على التوالي.
  • رمز؟ يتم وضعها بعد حرف (أو مجموعة من الأحرف)، والتي قد تكون موجودة أو لا تكون موجودة. على سبيل المثال، سيطابق التعبير "jpe?g" كلاً من السلسلة "jpg" والسلسلة "jpeg". مثال على تعبير يحتوي على مجموعة من الأحرف: "super-(puper-)?site".
  • يتم وضع الحرف * بعد الحرف (أو مجموعة الأحرف) التي يمكن أن تكون غائبة أو موجودة لعدد غير محدود من المرات على التوالي. على سبيل المثال، يتطابق التعبير "jpe*g" مع السلاسل "jpg" و"jpeg" و"jpeeeeeeeg".
  • يعمل الحرف + بشكل مشابه للحرف *، مع الاختلاف الوحيد وهو أن الحرف الذي يسبقه يجب أن يكون موجودًا مرة واحدة على الأقل. على سبيل المثال، يطابق التعبير "jpe+g" السلاسل النصية "jpeg" و"jpeeeeeg"، ولكن ليس "jpg".
  • يتم استخدام الأقواس المربعة لسرد الأحرف الصالحة. على سبيل المثال، التعبير "" يكافئ التعبير "a|b|c"، لكن الخيار الذي يحتوي على أقواس مربعة يكون عادةً أسرع. يمكنك استخدام النطاقات داخل الأقواس: على سبيل المثال، التعبير "" يعادل التعبير "". إذا كانت الشخصيات في الداخل أقواس مربعةتبدأ بالحرف ^، وهذا يعني أي حرف باستثناء تلك المذكورة بين قوسين. على سبيل المثال، يعني التعبير "[^0-9]+" سلسلة مكونة من أي أحرف باستثناء الأرقام.
  • يتم وضع الرمز \ قبل الأحرف الخاصة إذا كانت هناك حاجة إليها في شكلها الأصلي. على سبيل المثال، يتطابق التعبير "jpe\+g" مع سلسلة واحدة فقط، "jpe+g".
  • كل شيء على يمين # يعتبر تعليقاً.

كيفية تشغيله

في Linux (LAMP)، تسمح تكوينات Apache عادةً باستخدام ملف htaccess. في FreeBSD، قد تحتاج إلى السماح لهذا الملف على وجه التحديد باستخدام توجيهallowOverride في التكوين العام أو الخاص بالموقع.

السماح بتجاوز الكل

حظر قراءة جميع الملفات في الدليل

الوصول من عنوان IP محدد

أو ينكر، يسمح
رفض من الجميع
السماح من 192.168.0.1
السماح من 192.168.0.2


حيث بدلاً من 192.168.0.1، تتم الإشارة إلى 192.168.0.2 عناوين IP التي يمكن للمستخدمين من خلالها الوصول إلى الموقع. خلاف ذلك - خطأ 403.

رفض الوصول من عناوين IP معينة

السماح بالأمر، الرفض
السماح من الجميع
رفض من 192.168.0.1
رفض من 192.168.0.2


حيث من الضروري بدلاً من عناوين IP المحددة الإشارة إلى تلك التي تم رفض الوصول منها.

رفض الوصول إلى الملفات عن طريق القناع


السماح بالأمر، الرفض
رفض من الجميع


بدلاً من ext1، ext2، ext3... نقوم بإدخال الامتدادات الخاصة بنا. يتم تحديد قواعد الرفض/الوصول بنفس الطريقة المتبعة في الدليل بأكمله.

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


السماح بالأمر، الرفض
رفض من الجميع

كلمة المرور للدليل

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

AuthName "أدخل كلمة مرور الوصول"
نوع المصادقة الأساسي
AuthUserFile /var/www/mysite.ru/.htpasswd
تتطلب مستخدمًا صالحًا


انتباه! يرجى ملاحظة أنه هنا يتم تحديد المسار إلى ملف .htpasswd من جذر نظام ملفات الخادم، وليس من الموقع!

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

# htpasswd -c /var/www/mysite.ru/.htpasswd كلمة مرور اسم المستخدم


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

وينبغي أن يؤخذ في الاعتبار أنه متى هذه الطريقةيتم إرسال تسجيل الدخول وكلمة المرور للمصادقة بشكل مفتوح نموذج النصلذلك يوصى باستخدام بروتوكول HTTPS/SSL.

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

حماية كلمة المرور المعقدة

هناك هيكل الموقع:

/mysite.ru/A
/mysite.ru/A/B1
/mysite.ru/A/B2

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

سنحتاج إلى ملفات .htaccess في كل دليل.

Htaccess للدليل أ:

اسم المصادقة "أدخل كلمة المرور"
نوع المصادقة الأساسي


تتطلب مستخدمًا صالحًا


.htaccess للدليل B1:

اسم المصادقة "أدخل كلمة المرور"
نوع المصادقة الأساسي
AuthUserFile /var/www/mysite.ru/A/.htpasswd

تتطلب اسم المستخدم المستخدم 1 اسم المستخدم 2 اسم المستخدم 3


htaccess للدليل B2:

اسم المصادقة "أدخل كلمة المرور"
نوع المصادقة الأساسي
AuthUserFile /var/www/mysite.ru/A/.htpasswd

تتطلب اسم المستخدم المستخدم 1 اسم المستخدم 4 اسم المستخدم 5


بدلاً من usernameX، نستبدل أسماء المستخدمين الذين لديهم حق الوصول إلى الأدلة المقابلة.

إعادة التوجيه (إعادة التوجيه) إلى موقع آخر

إعادة توجيه / http://www.anothersite.ru


إذا كانت إعادة التوجيه دائمة (أي إلى الأبد - وهو أمر مفيد جدًا لـ محركات البحث)، فإن بناء الجملة سيكون مثل هذا:

إعادة توجيه دائمة / http://www.anothersite.ru


إذا استخدمت كلمة مؤقت بدلاً من دائم، فإن إعادة التوجيه، على العكس من ذلك، ستكون مؤقتة.

مثال آخر لإعادة التوجيه - من دليل محدد داخل الموقع:

إعادة توجيه /dir2 http://www.anothersite.ru/dir2

بدلاً من توجيه Redirect، نستخدم توجيه RedirectMatch. والفرق هو أنه بدلاً من تحديد العنوان الذي سيتم إعادة التوجيه منه، يتم تحديد تعبير عادي.

RedirectMatch (.*)\.gif$ http://mysite.ru/$1.png


يعيد توجيه كافة الطلبات إلى .gif - إلى الملفات التي تحمل الاسم نفسه، ولكن بالامتداد .png، الموجود على mysite.ru/

مثال آخر:

RedirectMatch (.*\.jpg)$ http://mysite/$1

إعادة كتابة المحرك قيد التشغيل

RewriteCond %(HTTP_HOST) ^www\.old_site\.ru$

RewriteCond %(HTTP_HOST) ^old_site\.ru$
قاعدة إعادة الكتابة ^(.*)$ http://new_site.ru/$1

يعرض صفحات مختلفةاعتمادًا على عنوان IP الخاص بالمستخدم

SetEnvIf REMOTE_ADDR 192.168.0.1 REDIR = "redir"
إعادة كتابة Cond %(REDIR) redir
قاعدة إعادة الكتابة ^/$/another_page.html


بدلاً من 192.168.0.1 نقوم بإدخال القيمة الخاصة بنا.

استبدال صفحة البداية

فهرس الدليل Another_file.php


في الأساس، نحن هنا نستبدل توجيه DirectoryIndex المحدد في ملف httpd.conf أو apache.conf.

استبدال صفحات الخطأ

خطأ الوثيقة 403 /error403.html
خطأ الوثيقة 404 /error404.html


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

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

خيارات-الفهارس


وبالتالي، لن يتمكن المستخدم من عرض محتوى الدليل الذي لا يوجد به ملف فهرس (وفي الدليل الذي يوجد به ملف فهرس، لا يمكنه القيام بذلك افتراضيًا).

تحديد الترميز المعروض

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

AddDefaultCharset windows-1251

تحديد التحويل التلقائي لترميز الملفات التي تم تنزيلها

عند تحميل الملفات إلى الموقع، سيتم تحويلها تلقائيًا إلى الترميز المحدد.

CharsetSourceEnc koi8-r

إضافة معالجات MIME

AddType "نص/html" .myext
AddType "application/x-rar-compressed" .rar


بهذه الطريقة يمكننا إضافة توجيهات إلى موقعنا لم يتم وصفها في تكوين Apache العام.

حظر بعض وكلاء المستخدم (متصفحات الويب والروبوتات والروبوتات)

فيما يلي جزء من ملف .htaccess الذي يتم فيه حظر العديد من وكلاء المستخدم (متصفحات الويب، والروبوتات، في الواقع).

وكيل مستخدم SetEnvIfNoCase "^Titan" bad_bot
وكيل مستخدم SetEnvIfNoCase "^Wget" bad_bot
وكيل مستخدم SetEnvIfNoCase "^SiteSnagger" bad_bot
وكيل مستخدم SetEnvIfNoCase "^WebAuto" bad_bot
وكيل مستخدم SetEnvIfNoCase "^NetAnts" bad_bot
وكيل مستخدم SetEnvIfNoCase "^WebZip/4.0" bad_bot
وكيل مستخدم SetEnvIfNoCase "^httplib" bad_bot


أمر السماح، رفض
السماح من الجميع
الرفض من env=bad_bot


قائمة وكلاء المستخدم "السيئين" هنا صغيرة جدًا ويتم تقديمها كمثال فقط.

إعدادات PHP

بالإضافة إلى متغيرات httpd.conf وapache.conf، قد نحتاج أيضًا إلى تغيير القيم المحددة في php.ini إعدادات PHP. يتيح لك ملف .htaccess القيام بأشياء لطيفة كهذه. يتم استخدام توجيهات php_value و php_flag لهذا الغرض.

الفرق بين php_value وphp_flag: يعين التوجيه الأول قيمة محددة للإعداد:
php_value
والثاني يقوم بتشغيل الإعداد المنطقي أو إيقاف تشغيله:
php_flag

انتباه! لا يمكنك استخدام php_admin_flag وphp_admin_value في ملف htaccess!

على سبيل المثال، رمز

php_flag magic_quotes_gpc 0
php_flag magic_quotes_runtime 0


سيتم إيقاف الهروب التلقائي للبيانات في PHP (إيقاف تشغيل MagicQuotes)، والكود

php_value Memory_limit 64M

سوف تتجاوز القيمة الحد الأقصى للكميةالذاكرة المخصصة للموقع.

تتجاوز هذه القيم القيم المحددة في ملف php.ini أو تحددها إذا لم يتم تعيينها بواسطة مسؤول خادم الاستضافة. لا فائدة من إدراج القائمة الكاملة لإعدادات PHP هنا - يمكن العثور عليها في وثائق PHP اللازمةالإصدارات بالنسبة لك.

إعادة كتابة الوحدة النمطية

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

ذات صلة بـ: Apache 2.x

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

السماح بالوصول من عنوان IP محدد:أمر يسمح بالرفض
رفض من الجميع
السماح من<ваш ip>في في هذه الحالة, <ваш ip> يشير إلى عنوان محدد.
على سبيل المثال: أمر السماح بالرفض
رفض من الجميع
السماح من 192.126.12.199

رفض الوصول من عنوان IP محدد:أمر يسمح بالرفض
رفض من الجميع
ينكر من<ваш ip>الاستخدام <ваш ip> مماثلة للمثال أعلاه.

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

على سبيل المثال، نريد رفض (حظر) الوصول من الملكية الفكرية 81.222.144.12 و81.222.144.20 والسماح لأي شخص آخر نحتاج إلى إضافته إلى .htaccessالكود التالي:

أمر السماح، رفض
السماح من الجميع
رفض من 81.222.144.12، 81.222.144.20

بالنسبة للوضع العكسي عندما نريد منع الوصول من الجميع الملكية الفكريةبالإضافة إلى 81.222.144.12 و81.222.144.20 نحتاج إلى الإضافة إلى .htaccessالكود التالي:

أمر الرفض، السماح
رفض من الجميع
السماح من 81.222.144.12، 81.222.144.20

للسماح لمضيفين محددين فقط أو مجموعات من المضيفين بالوصول إلى الخادم، يمكن تحديد المضيف بأي من التنسيقات التالية:

  • لاسم المجال (أو جزء منه):السماح من apache.org
    السماح من .net example.edu
  • لعنوان IP:السماح من 10.1.2.3
    السماح من 192.168.1.104 192.168.1.205
  • لجزء من عنوان IP:
    السماح من 10.1
    السماح من 10 172.20 192.168.2
  • لزوج الشبكة/القناع:السماح من 10.1.0.0/255.255.0.0
  • لمواصفات الشبكة/nnn CIDR:
    السماح من 10.1.0.0/16

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

السماح بالأمر، الرفض
رفض من الجميع

في في هذا المثاليمكن لخادم الويب Apache نفسه الوصول إلى الملفات ذات هذه الامتدادات.

الحظر على ملف محدد:
يمكنك حظر ملف معين حسب اسمه وامتداده.
السماح بالأمر، الرفض
رفض من الجميع
في هذا المثال، يُحظر الوصول إلى ملف config.inc.php.

كلمة مرور الدليل:اسم المصادقة "المنطقة الخاصة"
نوع المصادقة الأساسي
تتطلب مستخدمًا صالحًا
سيتم عرض قيمة AuthName للزائر ويمكن استخدامها لتوضيح طلب التفويض. تشير قيمة AuthUserFile إلى الموقع الذي تم فيه تخزين الملف الذي يحتوي على كلمات مرور للوصول إلى هذا الدليل. يتم إنشاء هذا الملف فائدة خاصة htpasswd.exe.

على سبيل المثال، في دليل محمي بكلمة مرور، نقوم بإنشاء ملف .htaccess التالي: AuthName "للمستخدمين المسجلين فقط"
نوع المصادقة الأساسي
AuthUserFile /pub/site.ru/.htpasswd
تتطلب مستخدمًا صالحًا
في هذا المثال، عندما يطلب الزائر دليلًا، سيقرأ عبارة "للمستخدمين المسجلين فقط"؛ يجب أن يكون الملف الذي يحتوي على كلمات مرور الوصول موجودًا في الدليل /pub/site.ru/ ويسمى.htapasswd. يتم تحديد الدليل من جذر الخادم؛ إذا قمت بتحديد الدليل بشكل غير صحيح، فلن يتمكن Apache من قراءة ملف .htpasswd ولن يتمكن أي شخص من الوصول إلى هذا الدليل.

كلمة المرور لملف واحد فقط:الثلاثاء 09 فبراير 2010 الساعة 15:44:59 بتوقيت جرينتش+0300
كما هو الحال مع كلمة المرور لدليل كامل، يمكنك وضع كلمة مرور لملف واحد فقط.
مثال على تعيين كلمة مرور لملف Private.zip:
اسم المصادقة "منطقة المستخدمين"
نوع المصادقة الأساسي
AuthUserFile /pub/home/your_login/.htpasswd

كلمة المرور لمجموعة من الملفات:
وبالمثل، باستخدام ، يمكنك تعيين كلمات المرور بناءً على أقنعة الملفات.
مثال على تعيين كلمة مرور للوصول إلى كافة الملفات ذات الامتداد "sql":

اسم المصادقة "منطقة المستخدمين"
نوع المصادقة الأساسي
AuthUserFile /pub/home/your_login/.htpasswd

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

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

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

لقد بدأنا الموضوع بالفعل في إحدى المقالات السابقة، ولكن اليوم سنقوم بتحديث المعلومات قليلاً وننظر إلى إعداد htaccess بمزيد من التفاصيل.

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

الصيغة العامة للتوجيهات بسيطة للغاية، فهي عبارة عن أزواج من الأوامر وخياراتها مفصولة بمسافة، على سبيل المثال:

معلمة الأمر 1 المعلمة 2 أعلام

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

إعداد الوصول إلى htaccess

في كثير من الأحيان يتم استخدام htaccess للتحكم في الوصول إلى المجلد. يتم استخدام ثلاثة أوامر للتحكم في الوصول:

  • طلب- طلب؛
  • ينكر- يحظر؛
  • يسمح- يسمح.

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

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

رفض الأمر، السماح
رفض من الجميع

ولكن يمكننا أيضًا السماح بالوصول فقط من الشبكة المحلية:

رفض الأمر، السماح
رفض من الجميع
السماح 192.168.0.

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

الأمر بالسماح والرفض
السماح 192.168.0.

تعديل URL في htaccess

الاستخدام الأكثر شيوعًا لـ htaccess هو تعديل عنوان URL في وقت التشغيل أو عمليات إعادة التوجيه. الوحدة mod_rewrite مسؤولة عن هذه الوظيفة ويتم تمكينها عادةً في معظم تكوينات Apache.

يتم تعديل عنوان URL في htacces باستخدام ثلاثة توجيهات، وهي: RewriteBase، الذي يحدد بادئة العنوان، RewriteCondالشيكات للامتثال، و RewriteRule- يغير عنوان URL وفقًا للتعبير العادي إذا كانت جميع القواعد المطابقة متطابقة.

تحتاج أولاً إلى تمكين Mod_Rewrite، في حالة عدم تنشيط الوحدة بعد:

إعادة كتابة المحرك قيد التشغيل

نشير إلى أنه يجب استخدام الجذر كبادئة لعنوان URL:

وسنقوم تلقائيًا باستبدال عنوان URL من ملف Index.html إلى ملف Index.php، لاحظ أن عنوان URL الأصلي هو المسار إلى الملف المطلوب بالنسبة لموقع ملف htaccess:

RewriteRule Index.html/index.php

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

  • ^ - بداية السطر؛
  • $ - نهاية الخط؛
  • . - أي رمز؛
  • * - أي عدد من أي رموز؛
  • ? - رمز واحد محدد؛
  • - تسلسل الأحرف، على سبيل المثال، من 0 إلى 9؛
  • | - الرمز أو، تم تحديد مجموعة أو أخرى؛
  • () - يستخدم لتحديد مجموعات من الشخصيات.

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

  • %(HTTP_USER_AGENT)- حقل وكيل المستخدم، الذي يتم إرساله بواسطة متصفح المستخدم؛
  • %(REMOTE_ADDR)- عنوان IP الخاص بالمستخدم؛
  • %(REQUEST_URI)- عنوان URI المطلوب؛
  • %(QUERY_STRING)- معلمات الاستعلام بعد علامة ?

هذه هي المتغيرات الأكثر استخدامًا، ولكن هناك الكثير غيرها، ويمكنك العثور على الباقي في الوثائق الرسمية. التعبيرات العادية تفتح المزيد فرص وافرةعلى سبيل المثال، يمكنك استبدال html بـ php في جميع الصفحات:

إعادة كتابة المحرك على؛
RewriteBase/;

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

RewriteBase/;
RewriteCond % (HTTP_HOST) ^www.site.ru$
RewriteRule ^(.*)\.html$ $1.php

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

إعداد عمليات إعادة التوجيه في htaccess

يتم إعداد عمليات إعادة توجيه htaccess بطريقة مماثلة، باستخدام نفس الوحدة النمطية mod_rewrite، والآن فقط بدلاً من تعديل عنوان url، نحدد علامة بها تصرف ضروريوإعادة توجيه التعليمات البرمجية.

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

إعادة توجيه 301 /index.html http://www.site.ru/index.php

ولكن عادةً ما تحتاج إلى عمليات إعادة توجيه ذات تأثير أوسع. يبدو كل شيء متشابهًا جدًا، لكننا الآن نستخدم علامة لتجاهل حالة الأحرف، و[L] لإيقاف المعالجة، و[R] لإعادة التوجيه. على سبيل المثال، إعادة توجيه htaccess من إصدار غير www إلى نطاق به www:

RewriteCond %(HTTP_HOST) ^site\.ru$
قاعدة إعادة الكتابة ^(.*)$ http://www.site.ru/$1

القيمة R=301 تعني رمز إعادة التوجيه الذي سيتم إرجاعه إلى العميل، ويمكنك استخدام 301، 302، وما إلى ذلك. أعد توجيه htaccess باستخدام المجال wwwللمجال الذي لا يحتوي على بادئة سيبدو كما يلي:

RewriteCond %(HTTP_HOST) ^www.site\.ru$
قاعدة إعادة الكتابة ^(.*)$ http://site.ru/$1

يمكنك إجراء إعادة التوجيه بنفس الطريقة:

قاعدة إعادة الكتابة ^old_address /new_address/$1

إعادة التوجيه من إصدار http إلى https:

إعادة كتابة Cond %(SERVER_PORT) ^80$
RewriteCond %(HTTP) =on
قاعدة إعادة الكتابة ^(.*)$ https://site.ru/$1

إعداد صفحات الخطأ في htaccess

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

سيكون إعداد htaccess لهذا العنصر مفيدًا جدًا. يمكنك استخدام التوجيه ErrorDocument. باستخدامه، يمكنك ضبط صفحات HTML للأخطاء 4xx و5xx. على سبيل المثال، بالنسبة إلى 404:

مستند الخطأ 404 http://site.ru/error/404.shtml
مستند الخطأ 403 http://site.ru/error/403.shtml
خطأ الوثيقة 401 http://site.ru/error/401.shtml
خطأ الوثيقة 500 http://site.ru/error/500.shtml

التخزين المؤقت في htaccess

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

أولاً، قم بتنشيط الوحدة وتعيين فترة التخزين المؤقت الافتراضية:

تنتهي صلاحية تفعيله
انتهاء الصلاحيةالافتراضي "الوصول بالإضافة إلى شهر واحد"

يمكننا الآن تكوين التخزين المؤقت لكل نوع من أنواع ملفات mime:

ExpiresByType text/html "الوصول بالإضافة إلى شهر واحد و15 يومًا وساعتين"
ExpiresByType image/gif "الوصول بالإضافة إلى 5 ساعات و3 دقائق"
ExpiresByType image/x-icon "الوصول بالإضافة إلى 2592000 ثانية"

وفي السطر الأول نشير إلى ذلك صفحات HTMLيجب أن تعتبر صالحة لمدة شهر و15 يومًا وساعتين من لحظة التحميل. تتوفر أنواع الملفات التالية:

  • صورة/س-أيقونة؛
  • صورة / الحياة السياسية في فرنسا.
  • صورة / بابوا نيو غينيا؛
  • صورة/جيف؛
  • التطبيق/x-shockwave-flash;
  • النص/المغلق؛
  • نص/جافا سكريبت؛
  • التطبيق/جافا سكريبت؛
  • التطبيق/س-جافا سكريبت؛
  • نص/أتش تي أم أل؛
  • application/xhtml+xml;

للتأكد من أن هذا البناء لن يسبب أخطاء، قم بتغليفه في حالة:


ضغط الملفات في htaccess

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

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

يمكنك أيضًا إرفاق عبارة if للتحقق مما إذا كانت الوحدة مدعومة:


الاستنتاجات

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

في النهاية، أقدم مقطع فيديو يتضمن نظرة عامة على ملف تكوين Apache:

تم تضمين الدعم الكامل لتوجيهات .htaccess...

تجديدات النطاق 199-00 RUR

هذه المواد هي واحدة من أهم المواد، لذلك أوصي بإيلاء اهتمام خاص لها.

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

  • تستخدم الأقواس () للفصل بين مجموعات الأحرف.

    يمثل الحرف ^ بداية السطر.

    يشير الحرف $ إلى نهاية السطر.

    رمز. لتقف على أي شخصية.

    الرمز | يدل على بديل. على سبيل المثال، التعبيران "A|B" و"(ABC|DEF)" يعنيان "A أو B" و"ABC أو DEF"، على التوالي.

    رمز؟ يتم وضعها بعد حرف (أو مجموعة من الأحرف)، والتي قد تكون موجودة أو لا تكون موجودة. على سبيل المثال، سيطابق التعبير "jpe?g" كلاً من السلسلة "jpg" والسلسلة "jpeg". مثال على تعبير يحتوي على مجموعة من الأحرف: "super-(puper-)?site".

    يتم وضع الحرف * بعد الحرف (أو مجموعة الأحرف) التي يمكن أن تكون غائبة أو موجودة لعدد غير محدود من المرات على التوالي. على سبيل المثال، يتطابق التعبير "jpe*g" مع السلاسل "jpg" و"jpeg" و"jpeeeeeeeg".

    يعمل الحرف + بشكل مشابه للحرف *، مع الاختلاف الوحيد وهو أن الحرف الذي يسبقه يجب أن يكون موجودًا مرة واحدة على الأقل. على سبيل المثال، يطابق التعبير "jpe+g" السلاسل النصية "jpeg" و"jpeeeeeg"، ولكن ليس "jpg".

    يتم استخدام الأقواس المربعة لسرد الأحرف الصالحة. على سبيل المثال، التعبير "" يكافئ التعبير "a|b|c"، لكن الخيار الذي يحتوي على أقواس مربعة يكون عادةً أسرع. يمكنك استخدام النطاقات داخل الأقواس: على سبيل المثال، التعبير "" يعادل التعبير "". إذا كانت الأحرف الموجودة داخل الأقواس المربعة تبدأ بـ ^، فهذا يعني أي حرف غير تلك المدرجة بين الأقواس. على سبيل المثال، يعني التعبير "[^0-9]+" سلسلة مكونة من أي أحرف باستثناء الأرقام.

    يتم وضع الرمز \ قبل الأحرف الخاصة إذا كانت هناك حاجة إليها في شكلها الأصلي. على سبيل المثال، يتطابق التعبير "jpe\+g" مع سلسلة واحدة فقط، "jpe+g".

    {3,9} - الأقواسيعني نطاقًا من عدد الأحرف، في هذه الحالة مسموح من 3 إلى 9 أحرف، يجب أن يكون طول سلسلة الأحرف مساويًا أو أكثر من 3 يساوي أو أقل من 9 أحرف. تستخدم بشكل رئيسي. على سبيل المثال، التحقق من السلسلة طلب HTTPيرسلها المتصفح إلى الخادم لتحديد ما إذا كان محتواه يتطابق مع نمط معين:
    ♳ RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.php\ HTTP/
    ♴ لنفترض أننا طلبنا صفحة فهرس على الخادم %(THE_REQUEST) = "GET /index.html HTTP/1.1"
    ♵ في هذه الحالة نقرأ السطر المصدر الذي يحتوي على أقواس متعرجة مثل هذا: "beginning_of_received_dataGETspace/index.phpspaceHTTP/"
    ♶ أي. يمكن أن تكون "GET"، أو يمكن أن تكون "POST"، وقد تكون هناك قيم أخرى... مجرد رموز، اعتمادًا على ماذا وكيف نطلب ملف Index.php على الخادم.

    أي شيء بعد الرمز "#" يعتبر تعليقًا.

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

النطاقات التي تم إصدارها مؤخرًا مع PR وTIC:

الخدمة http://reg.ru - أكبر استضافة ومسجل نطاق تسمح لك بالتقدم بطلب تسجيل اسم المجال الذي تم إصداره مؤخرًا بواسطة المسؤول السابق. غالبًا ما تحتوي النطاقات التي تم إصدارها على مؤشرات TIC وPR عالية وقد تكون مثيرة للاهتمام للاستحواذ عليها.

تم إصدار domains.RU مع TIC:
النطاقات المتميزة المتوفرة:

حجم المعلومات: 5805 بايت