سؤال

وأنا بحاجة إلى إعداد بعض RewriteRules لإعادة توجيه URL الذي يحتوي على مساحة فيه. لقد حاول هذا:

RewriteRule ^article/with%20spaces.html$ /article/without_spaces.html [R=301,L]

... ولكنه لا يعمل. وضع في الفضاء بدلا من 20٪ يؤدي إلى خطأ خادم داخلي 500. كيف أقوم بإضافة الفضاء؟

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

المحلول

ومحاولة وضع \ أمام الفضاء الخاص بك إلى الخروج منه.

RewriteRule ^article/with\ spaces.html$ /article/without_spaces.html [R=301,L]

نصائح أخرى

ويمكنك الهروب مجرد الفضاء مع \

RewriteRule ^article/with\ spaces.html$ /article/without_spaces.html [R=301,L]

إذا كنت ترغب في تجنب تعقيد الهروب كل الفضاء (على سبيل المثال، إذا كنت تخطط ليكون هذا الملف تم إنشاؤه تلقائيا)، يمكنك ببساطة استخدام علامات الاقتباس:

RewriteRule "^article/with spaces.html$" /article/without_spaces.html [R=301,L]

وعلاوة على ذلك، هذه الأقوال يمكن استخدامها ليغلف أي حجة المتوقع واحد:

RewriteRule "^article/with spaces.html$" "/article/without_spaces.html" [R=301,L]
RewriteRule ^article/with[\ |%2520]spaces.html$ /article/without_spaces.html [R=301,L]

والخيار الأول يستبدل مساحة في حين أن الثانية يستبدل ترميز بجد٪ 20 في عنوان الموقع.

وآه، لقد وجدت الحل: استخدام أسلوب التعابير المنطقية لإظهار الفضاء:

RewriteRule ^article/with\sspaces.html$ ...

ورغم ذلك، وأظن أن هذا من شأنه أن تتطابق مع كل الشخصيات مسافة بيضاء أخرى أيضا (علامات التبويب، الخ)، ولكن لا أعتقد أنها ستكون مشكلة كبيرة.

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