أقوم بنقل موقع أقدم إلى موقع أحدث يستخدم دروبال. كجزء من هذا ، أحاول إعداد 301 إعادة توجيه إلى الصفحات الجديدة ، لكنني أتلقى بعض السلوكيات غير المتوقعة. أضفت السطر التالي إلى ملف htaccess الخاص بي:
redirect 301 /redirect.html http://www.example.com/newpage
لسوء الحظ ، ما يحدث هو أنني أخذت إلى:
http://www.example.com/newpage?q=redirect.html
والتي بالطبع لا يتم تحميل بشكل صحيح. أي أفكار؟
حتى بعد قليل من البحث ، وجدت الجواب هنا . إنه مشابه لـ 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>
هذا يبدو لإنجاز المهمة.
نسيت .htaccess.
استخدم إعادة توجيه عالمية . يمنحك ما يلي:
يعمل ذلك على تبسيط عملية ترحيل موقع الويب الخاص بك قليلاً ، والأهم من ذلك أنه يجعل من السهل البحث عن ما يتم إعادة توجيهه بالضبط. (لأن هناك واجهة مستخدم لذلك)
المكافأة ( تخيل ظهور clippy هنا )
يبدو أنك تقوم بإنشاء شيء مشابه لـ عناوين URL نظيفة . أعتقد أنك قد تكون مهتمًا بـ pathauto .
قواعد إعادة الكتابة الأخرى الخاصة بك تتداخل.
جرب ما يلي بدلاً من ذلك:
RewriteEngine on
RewriteRule ^/redirect\.html$ http://www.mysite.com/newpage [L,R=301]
# ... existing rewrites
اعتدنا على مسار وحدة إعادة توجيه لهذا الغرض. لا يمكنها التعامل مع جميع الأشياء القوية التي يمكن أن يقوم بها Mod_rewrite ، ولكنها قامت بعمل رائع حقًا بالنسبة لنا في الحفاظ على عناوين URL القديمة.