سؤال

أنا أتساءل عندما من الممكن استخدامها .htaccess لإعادة كتابة اسم مجلد. ما أعنيه هو هذا.

دعنا نقول أن لدي عنوان URL مثل:

www.site.com/folder1/page.php

الآن أريد إعادة كتابة عنوان URL إلى (على سبيل المثال)

www.site.com/apple/page.php

Folder1 هو مجلد موجود على WebSpace الخاص بي.

هام: "Apple" ليس مجلدا بدلا من الاسم!

موافق هنا هي خطة خطوة بخطوة:

  1. أنواع المستخدم www.site.com/folder1/login.php
  2. يجب إعادة كتابة عنوان URL وعدم إعادة توجيه عنوان URL www.site.com/apple/login.php

هذا يعني ذاك apple هو مجرد اسم وليس دليل. يجب أن يأتي كل الكود فقط من Folder1. يجب أن تكون Apple Acutally مجرد اسم مستعار ل folder1. وبعد لا أستطيع إعادة تسمية folder1 ل Apple. وبعد لذلك أود فقط إعادة كتابة folder1 ل apple.

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

المحلول

MOD_REWRITE يمكن فقط إعادة كتابة / إعادة توجيه URIS المطلوبة. لذلك سوف تحتاج إلى طلب /apple/… لإعادة كتابتها إلى المقابلة /folder1/….

جرب هذا:

RewriteEngine on
RewriteRule ^apple/(.*) folder1/$1

ستقوم هذه القاعدة بإعادة كتابة كل طلب يبدأ بمسار URI /apple/… داخليا إلى /folder1/….


يحرركما كنت تبحث بالفعل عن الاتجاه الآخر:

RewriteCond %{THE_REQUEST} ^GET\ /folder1/
RewriteRule ^folder1/(.*) /apple/$1 [L,R=301]

تم تصميم هذه القاعدة للعمل مع القاعدة الأخرى أعلاه. طلبات /folder1/… سيتم إعادة توجيهها خارجيا إلى /apple/… وطلبات /apple/… ثم سيتم إعادة كتابتها داخليا /folder1/….

نصائح أخرى

يحاول:

RewriteRule ^/apple(.*)?$ /folder1$1 [NC]

عندما يكون المجلد الذي تريد ظهوره في عنوان URL في الجزء الأول من العبارة - هذا هو ما سيتطابق معه والجزء الثاني "أعد كتابة" ذلك إلى مجلدك الحالي. تعني علم [NC] أنه سيتجاهل اختلافات الحالة مثل Apple / ستظل إلى الأمام.

انظر هنا للحصول على برنامج تعليمي: http://www.sitepoint.com/article/guide-url-rewriting/

هناك أيضا أداة مساعدة لطيفة للنوافذ، يمكنك تنزيلها من هنا:http://www.helicontech.com/download/rxtest.zip. فقط لملاحظة لاختبار، تحتاج إلى ترك اسم المجال - لذلك سيكون الاختبار ضد /folder1/login.php

لإعادة توجيه من / Folder1 إلى / Apple، جرب هذا:

RewriteRule ^/folder1(.*)?$ /apple$1 [R]

لإعادة توجيه ثم أعد كتابة مجرد الجمع بين ما ورد أعلاه في ملف HTACCESS:

RewriteRule ^/folder1(.*)?$ /apple$1 [R]
RewriteRule ^/apple(.*)?$ /folder1$1 [NC]
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top