MOD_REWRITE لا يعمل من أجل عنوان URL الذي يبدأ في٪ (علامة النسبة المئوية)

StackOverflow https://stackoverflow.com/questions/734654

سؤال

هناك العديد من الروابط التي تشير إلى موقع أدرك فيه مسؤول الموقع عن طريق الخطأ شملت مساحة بين اسم المجال واسم الصفحة:

 www.domain.com/ page.html.

عندما ينقر المستخدم، يعطي هذا

 www.domain.com/٪20Page.html.

أود استخدام mod_rewrite لإعادة توجيه الزيارات إلى العنوان غير الصحيح إلى العنوان الصحيح، ولكن قاعدة إعادة الكتابة الخاصة بي لا تعمل. وبعد لقد جربت ما يلي دون نجاح:

 إعادة كتابة ^ ٪ 20Page.html $ /page.html [r = 301، l] إعادة الترتيب ^ .20page.html $ /page.html [r = 301، l

كيف يمكنني كتابة قاعدة للقبض على هذا العنوان؟ أرغب في الاحتفاظ بالبجر وعدم معاقبته للحصول على رابط مكسور، ولا يمكنني الحصول على مشرف الموقع لإصلاح روابطه.

هل كانت مفيدة؟

المحلول

ضع المساحة في إعادة كتابتك. ربما بحلول الوقت الذي يراه mod_rewrite ذلك، فقد تم فك تشفيره.

نصائح أخرى

استخدم مساحة حرفية، هربوا مع خط عاطفي، لذلك لا ينهي التعبير العادي:

RewriteRule ^\ page.html$ /page.html [R=301,L]

يمكنك استخدام شيء من هذا القبيل لإزالة جميع أحرف التحكم:

RewriteRule ^([^\x00-\x19\x7F]*)[\x00-\x19\x7F]+(.*) /$1$2 [L,R=301]

وحرفك المساحة الإضافي الخاص بك:

RewriteRule ^([^\x00-\x20\x7F]*)[\x00-\x20\x7F]+(.*) /$1$2 [L,R=301]
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top