Hostwinds دروس
نتائج البحث عن:
جدول المحتويات
ملف .htaccess هو ملف تكوين يستخدم في المقام الأول بواسطة خوادم الويب Apache للتحكم في جوانب مختلفة من سلوك موقع الويب على أساس كل دليل.يتيح لك تجاوز الإعدادات على مستوى الخادم وتطبيق تكوينات محددة على الدلائل الفردية دون تعديل ملف تكوين الخادم الرئيسي مباشرة.
يبرز ملف .htaccess كأداة قوية بشكل ملحوظ في إدارة مختلف مهام موقع الويب الخلفي بكفاءة.واحدة من المهام الأكثر شيوعًا هي تنفيذ عمليات إعادة التوجيه ، حيث يمكنك تنفيذ عمليات إعادة التوجيه على مستوى عناوين URL الفردية ، عبر المجالات بأكملها ، وحتى على مستوى بروتوكول HTTP.
في هذا البرنامج التعليمي ، سنذهب إلى خيارات لا تعد ولا تحصى. عروض Access لإعادة التوجيه ، والمشي في مختلف التطبيقات حتى تتمكن من إعادة توجيه عناوين URL بشكل فعال بثقة.
يخبر تمكين ملف .htaccess خوادم الويب Apache بالتعرف على التوجيهات المكتوبة وقبولها ، والتي ستعمل على إعداد تكوينات الخادم الافتراضية على مستوى الدليل.
اذا كان لديك الاستضافة المشتركة الحساب ، يجب أن يكون مزود خدمة الاستضافة الخاص بك قد تم تمكينه بالفعل ، لذلك كل ما عليك فعله هو إنشاء ملف.
باستخدام محرر النصوص المفضل لديك (سنستخدمه نانو لهذا المثال) ، افتح ملف تكوين موقع الويب الخاص بك مع الأمر التالي:
للأنظمة القائمة على القبعات (Centos ، Fedora ، Rhel):
sudo nano /etc/httpd/conf/httpd.conf
للأنظمة المستندة إلى دبيان (Debian ، Ubuntu ، Linux Mint):
sudo nano /etc/apache2/sites-available/domain_name.conf
ستبدو كتلة ملفات VirtualHost شيئًا من هذا القبيل:
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName domain_name
ServerAlias www.domain_name
DocumentRoot /var/www/domain_name/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
ملحوظة: اعتمادًا على كيفية تنظيم ملفات موقع الويب الخاص بك ، 'جذر المستند' قد تختلف.هناك نوعان من الإعدادات الشائعة:
/var/www/domain_name/
├── public_html/
│ ├── index.html
│ ├── about.html
│ └── .htaccess
└── logs/
/var/www/domain_name/
├── index.html
├── about.html
└── .htaccess
على الرغم من أن كلاهما صالح ، من المهم أن تكون على دراية بملفات الموقع التي قد ترغب أو لا ترغب في تأثرها بملف .htaccess.
في حدود استضافة افتراضية كتلة إضافة كتلة محتوى الدليل التالي:
<VirtualHost *:80>
<Directory /var/www/domain_name/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
هذا التوجيه ، على وجه التحديد 'السماح لجميع'هو ما يسمح لك بتطبيق. htaccess توجيهات عبر جميع ملفات موقع الويب ضمن الدليل المحدد.
بعد إضافة كتلة الدليل ، احفظ وإغلاق الملف.في نانو ، يمكن القيام بذلك بالضغط Ctrl +x، ثم ص والضغط أدخل.
للتمكين الكامل لملف .htaccess ، ستحتاج إلى إعادة تشغيل Apache:
للأنظمة القائمة على القبعات (Centos ، Fedora ، Rhel):
sudo systemct1 restart httpd
للأنظمة المستندة إلى دبيان (Debian ، Ubuntu ، Linux Mint):
sudo systemct1 restart apache2
هذا كل شيء!سيسمح لك Apache الآن باستخدام ملفات .htaccess ضمن الدليل المحدد.
بدعم من .htaccess ممكّن ، يمكننا الآن إنشاء ملف .htaccess.
لإنشاء ملف .htaccess ، تحتاج إلى الذهاب إلى دليل الجذر حيث قمت بتمكين ملف .htaccess.باستخدام محرر النصوص المفضل لديك (مرة أخرى ، سنستخدم Nano) إدخال الأمر التالي ، واستبداله "اسم النطاق'مع اسم المجال الخاص بك.
ملحوظة: يزيل 'public_htmlإذا لم تمكن ملف .htaccess في هذا الدليل الفرعي.
sudo nano /var/www/html/domain_name/public_html/.htaccess
لقد قمت الآن بإنشاء ملف .htaccess ويمكنك البدء في وضع توجيهات إعادة توجيه.
ال 'إعادة توجيه"التوجيه هو الخيار الأكثر وضوحًا لإعادة توجيه 1 إلى 1.يمكن استخدام هذا التوجيه لإعادة توجيه عناوين URL على نفس المجال أو إلى مجال مختلف.ستعمل التوجيهات التالية على أي رموز حالة 3xx (301 و 302 و 307 و 308)
Redirect 301 "/original_url_path" "/new_url_path"
Redirect 301 "/orignal_url_path" "https://new_domain.com/new_url_path"
ال 'إعادة كتابةيتيح لك التوجيه إضافة قواعد إضافية لإعادة التوجيه ، مثل مطابقة الأنماط ، من خلال استخدام التعبيرات والظروف العادية.
من أجل استخدام "Rewriterule" ، نحتاج إلى التأكد من تمكين وحدة "mod_rewrite".
httpd -M | grep rewrite
apache2ctl -M | grep rewrite
إذا رأيت الإخراج التالي ، يتم تمكين وحدة "mod_rewrite"
rewrite_module (shared)
الخطوة 1: افتح ملف تكوين Apache (عادةً "httpd.conf" أو "Apache2.Conf")
sudo nano /etc/httpd/conf/httpd.conf
الخطوة 2: تأكد من عدم التعليق على السطر التالي (لا # في البداية).إذا كان الأمر كذلك ، ما عليك سوى حذف "#"
LoadModule rewrite_module modules/mod_rewrite.so
الخطوه 3: أعد تشغيل Apache لتطبيق التغييرات
sudo systemctl restart httpd
الخطوة 1: تمكين وحدة "mod_rewrite"
sudo a2enmod rewrite
الخطوة 2: أعد تشغيل Apache لتطبيق التغييرات
sudo systemctl restart apache2
إذا كان لديك نمط شائع في عناوين URL القديمة ، مثل نفس الدليل الفرعي (على سبيل المثال /Blog) ، يمكنك استخدام تعبيرات منتظمة لمطابقة وإعادة توجيهها:
RewriteEngine On
RewriteRule ^old-section/(.*)$ http://www.example.com/new-section/$1 [R=301,L]
في هذا المثال ، أي عنوان URL يبدأ بـ 'القسم القديم/' سيتم إعادة توجيهها إلى 'قسم جديد/' مع نفس اللاحقة.
سيقوم التوجيه التالي بإعادة توجيه جميع حركة المرور من "old-domain.com' ل 'new-domain.com، "الحفاظ على مسار URI.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.new-domain.com/$1 [R=301,L]
عندما تقوم "بفرض HTTPS" ، فهذا يعني أنك تقوم بإعادة توجيه أي طلبات HTTP الواردة لموقعك إلى إصدار HTTPS المضمون.
هناك عدة طرق لإجبار HTTPs باستخدام توجيه "إعادة كتابة":
عندما تجبر HTTPS على "كل حركة المرور" ، فأنت تطلب من الخادم إعادة توجيه كل طلب HTTP الوارد إلى HTTPS ، بغض النظر عن المجال أو نطاق فرعي.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
تعتبر طريقة HTTPS القسرية هذه مثالية للخوادم التي تستضيف مجالًا واحدًا.
عندما تجبر HTTPS على مجال معين ، فأنت تطلب من الخادم إعادة توجيه طلبات HTTP إلى HTTPS فقط لهذا المجال المعين (أو النطاق الفرعي).
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?specific-domain\.com$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
يعد إجبار HTTPs بهذه الطريقة مفيدًا بشكل خاص عند استضافة العديد من المجالات على خادم واحد وتحتاج فقط إلى تأمين رقم محدد.
يمكنك أيضًا استخدام ملف .htaccess بالتزامن مع توجيه "إعادة كتابة" لإعادة توجيه "www".
لإضافة بادئة "www":
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
لإزالة بادئة "www":
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
كتب بواسطة Hostwinds Team / يونيو 3, 2024