.htaccess mod إعادة كتابة 301-إعادة التوجيه
-
09-06-2019 - |
سؤال
أريد:جميع الروابط التي لا تحتوي على اسم ملف (وليس .html، .jpg، .png، .css) تعيد التوجيه باستخدام الحالة 301 إلى الدليل، على سبيل المثال: http://mysite.com/article -> http://mysite.com/article/لكن http://mysite.com/article/article-15.html لا يعيد التوجيه.ما هو التعبير المنظم الذي يجب أن أكتبه إلى .htaccess لإضافة شرطة مائلة إلى الدلائل الافتراضية؟
المحلول
أعتقد أن ما يلي قد ينجح:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
عندما يتعلق الأمر بـ mod_rewrite، لا يمكنني التأكد أبدًا من دون الاختبار...
نصائح أخرى
التوضيح مطلوب:
نظرا لعنوان URL:http://server/path/file
هل تتم إعادة توجيه ذلك إلى:http://server/path/
أم أنه سيتم إعادة توجيهه إلى:http://server/path/file/
كما في:هل تريد أن تنتقل عمليات إعادة التوجيه إلى المسار الأصلي، أم أنك تريد فقط إضافة شرطة مائلة وافتراض الدليل خارج المسار الحالي؟
ستفشل RewriteRule الخاصة بـ MB أعلاه في مسارات مثل /a
لأنه يحتاج إلى مطابقة حرفين على الأقل بعد الشرطة المائلة.علاوة على ذلك، فإنه يتطابق فقط مع عناوين URL للدليل العلوي.
RewriteRule ^(([^\/]+\/)*[^\/\.]+)$ http://%{HTTP_HOST}/$1/ [R=301,L]
هل الغرض من ذلك هو تقليل تلوث التاريخ/السلبيات الكاذبة؟