it-swarm.asia

301 إعادة توجيه السلوك في نظام drupal

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

redirect 301 /redirect.html http://www.example.com/newpage

لسوء الحظ ، ما يحدث هو أنني أخذت إلى:

http://www.example.com/newpage?q=redirect.html

والتي بالطبع لا يتم تحميل بشكل صحيح. أي أفكار؟

3
Joe Corkery

حتى بعد قليل من البحث ، وجدت الجواب هنا . إنه مشابه لـ danlefree لكنه مختلف قليلاً.

<IFModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /

    # custom redirects

    RewriteRule ^redirect\.html$ http://www.mysite.com/newpage [R=301,L]

    # end custom redirects

    ...
</IFModule>

هذا يبدو لإنجاز المهمة.

3
Joe Corkery

نسيت .htaccess. استخدم إعادة توجيه عالمية . يمنحك ما يلي:

  1. للتحقق من عنوان URL الحالي لاسم مستعار ويقوم بإعادة توجيه 301 إليه إذا لم يتم استخدامه.
  2. للتحقق من عنوان URL الحالي لشرطة مائلة زائدة وإزالته في حالة وجوده وتكرار التحقق من 1 مع الطلب الجديد.
  3. يتحقق الوصول إلى URL. إذا لم يكن لدى المستخدم حق الوصول إلى المسار ، فلن تتم إعادة التوجيه. هذا يساعد على تجنب فضح العقدة المستعارة الخاصة.

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

المكافأة ( تخيل ظهور clippy هنا )

يبدو أنك تقوم بإنشاء شيء مشابه لـ عناوين URL نظيفة . أعتقد أنك قد تكون مهتمًا بـ pathauto .

2
cgp

قواعد إعادة الكتابة الأخرى الخاصة بك تتداخل.

جرب ما يلي بدلاً من ذلك:

RewriteEngine on

RewriteRule ^/redirect\.html$ http://www.mysite.com/newpage [L,R=301]

# ... existing rewrites
0
danlefree

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

0
acrosman