سؤال

ماذا اريد:

إلى 301 Redirect /file_new.pdf إلى / ملف new.pdf (٪ 20 AKA مساحة بين الملف والجديدة)

أنا أدرك أن:

  • يمكنني الاعتماد على إعادة كتابة 301 والتي تستخدم mod_rewrite، باستخدام حل من هذا الموضوع: @ mod_rewrite مع مسافات في عناوين URL
  • يمكنني إعادة تسمية الملف لعدم تضمين مسافات واستبدالها بالشرطات / الشرطة السفلية

ومع ذلك، أنا شخصيا فضولي حول كيف سيفعل المرء هذا. إليك ما لدي حتى الآن:

Redirect 301 /file_new.pdf http://sitename.com/file\ new.pdf

يلقي محلل ملفات CORT خطأ عندما استدعاء Configntest:

يأخذ إعادة التوجيه حججتين أو ثلاث حجج، وحالة اختيارية، ثم المستند المراد إعادة توجيه وعنوان URL المقصود

يحرر: من الواضح أن MOD_REWRITE أو إعادة توجيه 301 طريقة تعمل من أجلي، ربما لأنها لأي سبب من الأسباب التي لا يتقدم بها لأن الملف موجود بالفعل في هذا الموقع.

<VirtualHost *:80>
DocumentRoot /www/sitename_com
ServerName site.local
Options -MultiViews

RewriteEngine on
Redirect 301 /pdf/file_new.pdf http://site.local/pdf/file%20new.pdf
RewriteRule ^/pdf/file_new.pdf http://site.local/pdf/file\ new.pdf
RewriteLog "/www/rewrite.log"
</VirtualHost>

في rewrite.log، يحاول مطابقة النمط لكل طلب أوري / HTTP لكل منهما .. أعتقد أن هناك شيئا ما يتحكم قبل أن يصل إلى mod_alias / mod_rewrite.

لذلك لتلخيصه، يذهب مباشرة إلى file_new.pdf في المتصفح ولا 301. أنا إيجابي ذلك alias و rewrite يتم تمكين. إصدار Apache الخاص بي هو 2.2.

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

المحلول

ال Redirect هو في الواقع جزء من mod_alias، وليس mod_rewrite. أنا سعيد للعمل بنسبة٪ 20 ويمكنك أيضا استخدام عروض الأسعار لمعرفة Apache أن المسار الذي يتضمن المساحة هو عنوان URL لإعادة توجيه عناصر غير منفصلة وليس

Redirect 301 /pdf/file_new.pdf "http://site.local/pdf/file new.pdf"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top