أسوأ ساعة قمت بها من ترحيل موقع على الإطلاق هي التحديق في خطأ 500 على موقع مباشر، وكان السبب هو حرف ضال واحد في ملف.htaccess. لقد كتبت بخط اليد مجموعة من عمليات إعادة التوجيه لإعادة بناء WordPress، ووضعت علامة RewriteRule بأصابع سمينة، واستجاب Apache برفض خدمة النطاق بأكمله. كانت عمليات إعادة التوجيه نفسها جيدة؛ لم يكن بناء الجملة من حولهم كذلك، و.htaccess لا يرحم بهذه الطريقة. بعد ذلك توقفت عن كتابة قواعد إعادة التوجيه يدويًا وبدأت في إنشائها، وهو بالضبط ما حدث مولد إعادة توجيه Htaccess على Toolz.dev يفعل. يغطي هذا الدليل كيفية عمل عمليات إعادة توجيه Apache، ومتى يتم استخدام كل نوع، وكيفية تحديد HTTPS وwww دون كسر أي شيء.
ليرة تركية؛DR: يخبر ملف.htaccess Apache بكيفية إعادة توجيه عناوين URL. استخدم 301 للتحركات الدائمة، و302 للتحركات المؤقتة
Redirectللمسارات الدقيقة، وRewriteRuleللأنماط. ال مولد إعادة توجيه Htaccess يبني كل هذه القواعد بالإضافة إلى قواعد Force-HTTPS وwww من قائمة بسيطة، مرتبة بشكل صحيح، بالكامل في متصفحك دون تحميل أي شيء.
ما هو مولد إعادة توجيه htaccess؟
يقوم منشئ إعادة توجيه .htaccess بتحويل قائمة عادية من تعيينات عناوين URL القديمة إلى الجديدة إلى توجيهات Apache الدقيقة التي تقوم بعمليات إعادة التوجيه. رمز الحالة الذي تختاره هو سؤال بروتوكول، وليس سؤال Apache: RFC 9110 يحدد 301 على أنه دائم و302 كما تم العثور عليه. ملف.htaccess هو ملف تكوين لكل دليل يقرأه Apache عند كل طلب، وعلى الاستضافة المشتركة، عادةً ما يكون المكان الوحيد الذي يمكنك الإعلان عن عمليات إعادة التوجيه فيه، لأنه لا يمكنك تحرير تكوين الخادم الرئيسي. يكتب المولد نكهات إعادة توجيه Apache التي تدعمها: mod_alias Redirect التوجيه لإجراء تغييرات مباشرة على المسار الفردي، وإعادة كتابة mod_ RewriteRule توجيه لمطابقات الأنماط التي تلتقط العديد من عناوين URL في وقت واحد.
السبب وراء إنشاء هذه العناصر بدلاً من كتابتها هو أن بناء جملة .htaccess دقيق ومعاقب. العلامة في غير مكانها، أو النقطة التي لم يتم الهروب منها في النمط، أو القاعدة بالترتيب الخاطئ لا تنتج تحذيرًا؛ وينتج خطأ 500 يؤدي إلى إيقاف الموقع بأكمله حتى تجده وإصلاحه. يجب أن تظهر التوجيهات أيضًا بترتيب معين، مع تشغيل محرك إعادة الكتابة قبل أي قاعدة إعادة كتابة، وقواعد على مستوى الموقع قبل القواعد على مستوى الصفحة، أو أنها تسيء التصرف بطرق يصعب تصحيحها. يقوم المولد بتشفير هذا الترتيب وبناء الجملة حتى لا تتمكن من فهمه بشكل خاطئ.
في Toolz.dev، يعكس التدفق كيفية تفكيرك فعليًا في الترحيل. تقوم بإدراج كل مسار قديم ووجهته الجديدة، واختيار ما إذا كانت عملية النقل دائمة أم مؤقتة وما إذا كانت مسارًا محددًا أو نمطًا محددًا، وقم اختياريًا بتشغيل القاعدتين على مستوى الموقع اللتين يحتاجهما كل موقع تقريبًا. تقوم الأداة بتجميع الملف بأكمله بالترتيب الصحيح ووضع علامة على أي شيء مريب، مثل القاعدة التي تعيد توجيه المسار إلى نفسه، قبل لصقه في موقعك.
ما الفرق بين 301 و 302 إعادة التوجيه؟
A 301 عبارة عن إعادة توجيه دائمة و302 هي إعادة توجيه مؤقتة، وبالنسبة لمحرك البحث فإن هذا التمييز هو بيت القصيد. يخبر A 301 المتصفحات وبرامج الزحف أن الصفحة قد انتقلت إلى الأبد، وتستجيب محركات البحث عن طريق نقل جميع إشارات التصنيف المتراكمة القديمة تقريبًا '؛ إلى العنوان الجديد وفي النهاية إسقاط عنوان URL القديم من فهرسها. يخبرهم A 302 أن النقل مؤقت، لذا يحتفظون بعنوان URL الأصلي مفهرسًا ومرتبًا ويتعاملون مع الوجهة على أنها بديل سيختفي.
اختيار الخطأ له عواقب حقيقية. استخدم 302 للتنقل الدائم وقد تحافظ محركات البحث على عنوان URL القديم في المرتبة بينما تكافح صفحتك الجديدة لتجميع سلطتها الخاصة، لأن الإشارات لا تنتقل أبدًا. استخدم 301 لشيء مؤقت حقًا، مثل الصفحة المعطلة للصيانة أو الصفحة المقصودة الموسمية، وقد تفقد تصنيف الأصل بشكل دائم بمجرد عودة الموقف. القاعدة الأساسية بسيطة: إذا لم يعد عنوان URL القديم أبدًا، فاستخدم 301؛ إذا كان الأمر كذلك، استخدم 302.
وإليك كيفية المقارنة بين الخصائص المهمة
| ملكية | 301 دائم | 302 مؤقت |
|---|---|---|
| معنى | لقد انتقلت الصفحة إلى الأبد | الصفحة في مكان آخر مؤقتًا |
| إشارات الترتيب | تم النقل إلى عنوان URL الجديد | ابق مع عنوان URL الأصلي |
| عنوان URL القديم في الفهرس | انخفض في نهاية المطاف | أبقى |
| الاستخدام النموذجي | إعادة التصميم، والترحيل، والصفحات المدمجة | الصيانة، اختبارات أ/ب، الصفحات الموسمية |
| التخزين المؤقت للمتصفح | مخبأة بقوة | غير مخزنة مؤقتا بشكل افتراضي |
يتيح لك المولد تعيين الحالة لكل قاعدة، لذا فإن الترحيل الذي يكون في الغالب تحركات دائمة مع إعادة توجيه ترويجية مؤقتة واحدة هو قائمة مختلطة واحدة بدلاً من ملفين. نظرًا لأن 301s يتم تخزينها مؤقتًا بقوة بواسطة المتصفحات، فمن المفيد تصحيحها في المرة الأولى؛ يمكن أن يستمر 301 الخطأ في متصفح الزائر '؛s بعد فترة طويلة من إصلاح الخادم.
متى يجب أن أستخدم redirect مقابل rewriterule؟
استخدم Redirect توجيه لتغيير المسار بشكل دقيق، و RewriteRule عندما تحتاج إلى مطابقة النمط. Redirect 301 /old-page /new-page هي القاعدة الكاملة لنقل صفحة واحدة، وهي قابلة للقراءة، ويصعب أن تخطئ، ويتم التعامل معها بواسطة وحدة Apache'؛s mod_alias. عندما يكون لديك عدد قليل من الصفحات المحددة التي انتقل كل منها إلى موقع جديد محدد، قائمة Redirect الخطوط هي الطريقة الأكثر وضوحًا وأمانًا للتعبير عنها.
أ RewriteRule يكتسب تعقيده عندما تحتاج قاعدة واحدة إلى التقاط العديد من عناوين URL. إذا كان كل منشور تحت /blog/2023/ انتقل إلى نفس المسار بدون سنة، كتابة أ Redirect سيكون السطر لكل مشاركة عبارة عن مئات القواعد؛ واحد RewriteRule ^blog/2023/(.*)$ /blog/$1 [R=301,L] يتعامل معها جميعًا عن طريق التقاط الجزء بعد العام وإعادة استخدامه في الوجهة. تأتي القوة من التعبيرات العادية ومجموعات الالتقاط، ولكن المخاطر أيضًا، لأن الشخصية الخاصة التي لم يتم الهروب منها أو النمط الجشع يمكن أن تتطابق أكثر بكثير مما كنت تنوي.
يختار المولد التوجيه المناسب لك بناءً على نوع المطابقة الذي تختاره لكل قاعدة: تصبح القواعد الدقيقة Redirect تصبح الخطوط وقواعد الأنماط RewriteRule الأسطر، مع تشغيل محرك إعادة الكتابة تلقائيًا عند وجود أي قاعدة نمط. كما أنه يحافظ على المجموعتين بالترتيب الصحيح في الإخراج. إذا كنت جديدًا في كتابة الأنماط نفسها، فإن اختبار ريجكس يتيح لك التحقق من النمط مقابل نماذج عناوين URL قبل أن تثق به في عملية إعادة التوجيه، وهذه هي الطريقة التي أؤكد بها أن مجموعة الالتقاط تفعل ما أتوقعه.
كيف أفرض HTTPS في htaccess؟
لفرض HTTPS، يمكنك إضافة شرط إعادة الكتابة الذي يتحقق مما إذا كان الطلب الحالي غير آمن بالفعل، متبوعًا بقاعدة تعيد التوجيه إلى إصدار https لنفس المضيف والمسار. يتحقق النموذج القياسي %{HTTPS} off ثم يعيد الكتابة إلى https://%{HTTP_HOST}/$1 باستخدام 301، تتم ترقية كل طلب HTTP عادي بشكل دائم إلى الإصدار المشفر من عنوان URL المطابق. إن خدمة موقع عبر كل من http وhttps بدون إعادة التوجيه هذه تعني أن محركات البحث يمكنها فهرسة نسختين من كل صفحة، وتقسيم إشارات التصنيف بينهما.
الدقة هي الترتيب. يجب تشغيل قاعدة HTTPS قبل إعادة كتابة أي مضيف، مثل إضافة أو إزالة www، بحيث تصل هذه القواعد اللاحقة أيضًا إلى المخطط الآمن بدلاً من إرسال زائر من http إلى https ثم من خلال إعادة توجيه ثانية. يؤدي الحصول على هذا الخطأ إلى إنتاج سلاسل إعادة التوجيه، حيث يرتد طلب واحد من خلال قفزتين أو ثلاث قفزات قبل الوصول، وهو أمر أبطأ بالنسبة للمستخدمين ويخفف من فائدة التصنيف لإعادة التوجيه. يضع المولد قاعدة HTTPS أولاً لهذا السبب بالضبط.
قم بتشغيل Force HTTPS في الأداة ويقوم بإدراج الشرط والقاعدة الصحيحة في الجزء العلوي من الإخراج، قبل عمليات إعادة توجيه صفحتك وقاعدة www. نظرًا لأن HTTPS أصبح الآن توقعًا أساسيًا وليس إضافة اختيارية، ولأن المتصفحات تشير بشكل متزايد إلى صفحات http العادية على أنها غير آمنة، فهذه قاعدة أضيفها إلى كل موقع بشكل أساسي. فهو يقترن بشكل طبيعي بقاعدة المضيف الأساسية التي سيتم تغطيتها بعد ذلك، ويقومون معًا بتسوية الموقع على عنوان واحد بالضبط لكل صفحة.
كيف يمكنني إعادة توجيه www إلى غير www أو العكس؟
يمكنك تحديد بادئة www بشكل أساسي باستخدام قاعدة إعادة الكتابة التي تتحقق من المضيف وتعيد التوجيه إلى الإصدار الذي اخترته. لإزالة www، يمكنك مطابقة المضيفين الذين يبدأون بـ www.، التقط الباقي، وأعد التوجيه إلى المجال المجرد؛ لإضافة www، يمكنك مطابقة المضيفين الذين لا يبدأون بـ www. وإعادة التوجيه إلى النسخة البادئة. وفي كلتا الحالتين، الهدف هو أن يكون من الممكن الوصول إلى كل صفحة من مضيف أساسي واحد بالضبط، لأنه يقدم نفس المحتوى في كليهما www.example.com و example.com هي مشكلة محتوى مكرر كلاسيكية تعمل على تقسيم إشارات التصنيف تمامًا كما يفعل تقسيم http/https الذي لم يتم حله.
لا توجد ميزة تحسين محركات البحث لـ www على غير www أو العكس؛ ما يهم هو أنك تختار واحدًا وتفرضه باستمرار. استخدمت المواقع الكبيرة تاريخيًا www لأسباب فنية حول ملفات تعريف الارتباط والنطاقات الفرعية، بينما تقوم العديد من المواقع الحديثة بإسقاطها للإيجاز. الشيء المهم هو أنه بمجرد اختيار كل رابط وكل علامة أساسية وكل نقاط إعادة توجيه في نفس الإصدار، فإن محركات البحث تدمج كل سلطتك في مضيف واحد بدلاً من تقسيمها.
يقدم المولد إعداد www واحدًا مع ثلاثة خيارات: تركه دون تغيير، أو فرض www، أو إزالة www. فهو يكتب شرط المطابقة والقاعدة ويضعها بعد قاعدة HTTPS بحيث يتعاون الاثنان بدلاً من السلسلة. أي مضيف تستقر عليه يجب أن يكون أيضًا هو المضيف الموجود في العلامات الأساسية وخريطة الموقع الخاصة بك، لذلك يستحق إنشاء ملفك خريطة الموقع مع نفس المضيف الأساسي والإعلان عن قواعد الزحف الخاصة بك في المطابقة robots.txt. الاتساق عبر الثلاثة هو ما يجعل التقديس ثابتًا بالفعل.
هل تعمل عمليات إعادة التوجيه هذه على Nginx؟
رقم تنسيق .htaccess خاص بخادم الويب Apache والخوادم التي تحاكيه عمدًا وأبرزها LiteSpeed. Nginx لا يقرأ ملفات.htaccess على الإطلاق؛ فهو يتجاهلها تمامًا، لذا فإن لصق توجيهات Apache في إعداد Nginx لا يفعل شيئًا. يتعامل Nginx مع عمليات إعادة التوجيه بنفسه return و rewrite توجيهات داخل server و location كتل في التكوين الرئيسي، باستخدام بناء جملة مختلف ونموذج تقييم مختلف.
وهذا مهم لأن عددًا مفاجئًا من مشكلات إعادة التوجيه يأتي من تطبيق القاعدة الصحيحة على الخادم الخطأ. إذا بدا أن عمليات إعادة التوجيه الخاصة بك قد تم تجاهلها بغض النظر عما تكتبه، فإن أول شيء يجب التحقق منه هو خادم الويب الذي يخدم موقعك بالفعل، لأن ملف.htaccess الموجود على مضيف Nginx خامل. يقوم مضيفو WordPress المُدارون على وجه الخصوص أحيانًا بتشغيل Nginx أمام Apache أو بدلاً منه، وهناك لا يكون لملف.htaccess الذي قمت بتحريره بعناية أي تأثير.
ينتج المولد بناء جملة Apache، الذي يغطي الغالبية العظمى من الاستضافة المشتركة وأي مضيف يقوم بتشغيل Apache أو LiteSpeed. إذا كنت تستخدم Nginx، فإن منطق القواعد يترجم مباشرة، ولا تزال إعادة التوجيه الدائمة هي 301 والمضيف الأساسي لا يزال مضيفًا أساسيًا، ولكن يجب إعادة كتابة بناء الجملة لتوجيهات Nginx'؛s، وهي مهمة لتكوين مضيفك'؛s بدلاً من ملف. معرفة الخادم الذي تعمل عليه قبل البدء يوفر الارتباك الذي شاهدته يبتلع طوال فترة ما بعد الظهر.
متى سأستخدم هذا بالفعل؟
عمليات ترحيل الموقع هي الحالة الأساسية. عندما أقوم بإعادة بناء موقع، سواء كان مشروع WordPress ينتقل إلى هياكل URL جديدة أو إنشاء جديد يحل محل إصدار قديم، فإن كل عنوان URL قديم يحتوي على حركة مرور أو روابط خلفية يحتاج إلى 301 إلى موطنه الجديد، أو تتبخر حركة المرور والسلطة إلى 404s. يعد إدراج تلك التعيينات وإنشاء كتلة إعادة التوجيه في تمريرة واحدة، مرتبة بشكل صحيح ونظيفة من الناحية النحوية، أكثر أمانًا بكثير من التحرير اليدوي لملف يمكنه إزالة الموقع بسبب خطأ مطبعي واحد. تتعامل قواعد النمط مع الأقسام بأكملها التي تم نقلها كمجموعة.
إن فرض HTTPS والمضيف الأساسي هو الحالة اليومية. حتى في موقع لا يحتوي على عمليات إعادة توجيه على مستوى الصفحة، تستحق قواعد fortce-HTTPS وwww إضافتها لدمج إشارات التصنيف وتلبية الأمان الذي تتوقعه المتصفحات الأساسية الآن. أقوم بإنشاء هاتين القاعدتين لكل موقع جديد بشكل أساسي وألصقهما قبل الإطلاق، لذا فإن الموقع أساسي من اليوم الأول بدلاً من تنظيفه لاحقًا بمجرد فهرسة الإصدارات المكررة بالفعل.
التنظيف بعد أن تنتهي الحقيقة. تتراكم عمليات إعادة التوجيه القديمة، وبعضها يتسلسل من خلال قفزتين أو ثلاث قفزات، وبعضها يشير إلى الصفحات التي انتقلت مرة أخرى منذ ذلك الحين. يعد تجديد الكتلة بأكملها من قائمة نظيفة، باستخدام تحذيرات الحلقة والتنسيق التي توفرها الأداة، طريقة جيدة لتسوية تلك السلاسل مرة أخرى إلى قفزات فردية. تعد عمليات إعادة التوجيه أحد أركان تحسين محركات البحث في الموقع، وهي تقع بجانب مولد العلامات الفوقية وبقية مجموعة الأدوات الموجودة على الصفحة؛ الحالة الأوسع للاحتفاظ بهذا النوع من الأدوات المساعدة في المتصفح هي الحالة التي أقوم بها في دليل مجموعة أدوات مطور الويب، وزاوية الإنتاجية في دليل أدوات إنتاجية المطور.
هل بيانات URL الخاصة بي خاصة؟
نعم. يتم إنشاء كل قاعدة في JavaScript داخل متصفحك. لا يتم أبدًا نقل عناوين URL التي تدخلها ومجالك وخريطة إعادة التوجيه الخاصة بك أو تسجيلها أو تخزينها، وتستمر الأداة في العمل بدون اتصال بالشبكة بمجرد تحميل الصفحة. خريطة إعادة التوجيه هي في الواقع رسم تخطيطي لبنية موقعك '؛ وصفحاته الأكثر قيمة، وعلى الرغم من أنها ليست سرية في طريقة كلمة المرور، إلا أنه لا يوجد سبب لتدفقها عبر خادم شخص آخر '؛s فقط لتجميع ملف نصي.
نظرًا لأن العمل يحدث محليًا، يمكنك التخطيط للترحيل دون اتصال بالإنترنت، وإنشاء القواعد على جهاز كمبيوتر محمول بدون اتصال، ولصقها عندما تكون جاهزًا، دون مغادرة أي جزء من موقعك '؛s بنية URL للجهاز. هذا النهج المحلي الأول هو نفسه الموجود خلف كل أداة على Toolz.dev، ويعني أن الأداة قابلة للاستخدام على المستوى كما هي على المكتب. الحجة العامة لتفضيل الأدوات المستندة إلى المتصفح والتي لا تقوم بتحميل بياناتك مطلقًا هي تلك التي حددتها في خصوصية البيانات في دليل الأدوات عبر الإنترنت.
أسئلة وأجوبة
ما الفرق بين 301 و 302 إعادة التوجيه؟
A 301 عبارة عن إعادة توجيه دائمة: فهو يخبر المتصفحات ومحركات البحث أن الصفحة قد تحركت إلى الأبد ويمرر تقريبًا جميع إشارات تصنيف URL '؛ القديمة إلى الإشارة الجديدة. A 302 مؤقت: فهو يعيد توجيه الزائرين ولكنه يشير إلى أن عنوان URL الأصلي يجب أن يحتفظ بتصنيفه وقد يعود. استخدم 301 للتحركات الدائمة و302 فقط عندما يكون التغيير مؤقتًا حقًا.
أين أضع ملف htaccess؟
ضع ملف .htaccess في الدليل الجذر لموقعك على الويب ، وعادة ما يكون المجلد الذي يحتوي أيضًا على index.php أو index.html. عمليات إعادة التوجيه المعلنة هناك تنطبق على الموقع بأكمله. يبدأ اسم الملف بنقطة وليس له امتداد ، ويجب أن يكون لدى Apache AllowOverride ممكّن للدليل ، والذي يقوم معظم المضيفين المشتركين بتكوينه افتراضيًا.
متى يجب أن أستخدم redirect مقابل rewriterule؟
استخدم توجيه إعادة التوجيه mod_alias لتغيير مسار واحد لواحد ، مثل / الصفحة القديمة إلى / صفحة جديدة. استخدم rewriterule mod_rewrite عندما تحتاج إلى مطابقة نمط ، على سبيل المثال إرسال كل عنوان URL ضمن / blog / 2023 / إلى نفس المسار بدون السنة. تصدر هذه الأداة إعادة التوجيه للقواعد الدقيقة وإعادة كتابة قواعد الأنماط تلقائيًا.
كيف أفرض HTTPS في htaccess؟
يقوم Enable Force HTTPS والمولد بإضافة RewriteCond الذي يتحقق مما إذا كان HTTPS متوقفًا، متبوعًا بقاعدة RewriteRule التي تعيد التوجيه إلى إصدار https من نفس المضيف والمسار باستخدام 301. ويضمن وضع هذه القاعدة قبل عمليات إعادة التوجيه الأخرى ترقية كل طلب إلى اتصال آمن أولاً، دون التسلسل من خلال القفزات الإضافية.
هل تعمل عمليات إعادة التوجيه هذه على Nginx؟
رقم تنسيق .htaccess خاص بخادم الويب Apache والخوادم التي تحاكيه، مثل LiteSpeed. لا يقرأ Nginx ملفات.htaccess ويستخدم توجيهات إعادة الكتابة والإرجاع الخاصة به في تكوين الخادم، لذلك ستحتاج إلى ترجمة هذه القواعد إلى بناء جملة Nginx. تحقق من الخادم الذي يعمل عليه موقعك قبل استكشاف أخطاء عمليات إعادة التوجيه التي تم تجاهلها وإصلاحها.
هل ستؤذي عمليات إعادة التوجيه هذه تحسين محركات البحث؟
عند استخدامها بشكل صحيح ، تعمل عمليات إعادة التوجيه على حماية مُحسنات محركات البحث بدلاً من إتلافها. يحافظ 301 على ترتيب الصفحة المنقولة ، ويمنع تقسيم HTTPS و WWW الإصدارات المكررة من تقسيم إشاراتك. تأتي المخاطر من سلاسل إعادة التوجيه أو الحلقات أو إعادة التوجيه إلى صفحات غير ذات صلة ، لذا اجعل كل قاعدة تشير مباشرة إلى الوجهة الأكثر صلة.
هل يمكن لقاعدة واحدة إعادة توجيه العديد من عناوين URL في وقت واحد؟
نعم. اضبط القاعدة على وضع النمط واستخدم تعبيرًا عاديًا في الحقل المصدر مع مجموعات الالتقاط، ثم قم بالإشارة إليها في الوجهة بـ $1 و$2 وما إلى ذلك. على سبيل المثال، ^blog/(.*)$ تمت إعادة توجيهه إلى /articles/$1 ينقل كل صفحة ضمن /blog/إلى الصفحة المطابقة ضمن /articles/بقاعدة واحدة.
هل بيانات URL الخاصة بي خاصة؟
نعم. يتم إنشاء القواعد في متصفحك باستخدام جافا سكريبت. لا يتم تحميل أي شيء تدخله أو تسجيله أو تخزينه، وتستمر الأداة في العمل دون أي اتصال بالإنترنت بمجرد تحميل الصفحة. تصف خريطة إعادة التوجيه بنية موقعك '؛s، وباستخدام أداة من جانب العميل، لا تترك جهازك أبدًا لتجميع الملف.
قم ببناء عمليات إعادة التوجيه الخاصة بك مجانًا مولد إعادة توجيه Htaccess. يكتب قواعد Apache 301 و302، وفرض HTTPS، وwww من قائمة بسيطة، مرتبة بشكل صحيح، بالكامل في متصفحك دون تحميل أي شيء.



