سؤال

أريد:جميع الروابط التي لا تحتوي على اسم ملف (وليس .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]

هل الغرض من ذلك هو تقليل تلوث التاريخ/السلبيات الكاذبة؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top