سؤال

أحاول استخدام IIS isapi rewrite للقيام بما يلي ...

أحتاج إلى عناوين URL الصديقة لكبار المسئولين الاقتصاديين (بصمت) إلى عناوين URL الصديقة للتطبيق مثل SO:

RewriteRule ^/seo-friendly-url/ /test/index.cfm [I,L]

بسيطا بما فيه الكفاية.

لكنني بحاجة أيضًا إلى عناوين URL التي تم فهرستها بالفعل في محركات البحث (على سبيل المثال) ليتم إعادة توجيهها 301 إلى النسخة الصديقة لكبار المسئولين الاقتصاديين. مثل ذلك:

RewriteRule ^/test/index.cfm    /seo-friendly-url/ [I,R=301]

كل من هذه تعمل بشكل جيد في عزلة. ولكن عندما يكون لديّ كلاهما في ملف .ini ، انتهى بي الأمر مع /SEO-url /عرض في شريط عنوان المتصفح الخاص بي ، لكنني خدمت 404. (نعم ، /est /index.cfm بالتأكيد!)

أعلم أن الأمر يبدو وكأنه مرجع دائري ، لكن القاعدة الأولى تعيد كتابة عنوان URL فقط بين IIS والتطبيق - لا يوجد أي إعادة توجيه ، لذلك أنا لا أضغط على إعادة كتابة Isapi للمرة الثانية. أم أنا مخطئ في ذلك؟

لقد قمت بتمكين تسجيل الدخول على isapi rewrite وأرى ما يلي:

HttpFilterProc SF_NOTIFY_PREPROC_HEADERS
DoRewrites
New Url: '/seo-friendly-url/'
ApplyRules (depth=0)
Rule 1 : 1
Result (length 15): /test/index.cfm
ApplyRules (depth=1)
Rule 1 : -1
Rule 2 : 1
Result (length 18): /seo-friendly-url/
ApplyRules: returning 301
ApplyRules: returning 1
Rewrite Url to: '/seo-friendly-url/'

أي شخص حصل على أي أفكار؟

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

المحلول 2

من خلال بعض التجربة والخطأ ، توصلت إلى حل لهذا الغرض.

حدد أن تطابق إعادة التوجيه في نهاية السلسلة باستخدام رمز $:

RewriteRule ^/test/index.cfm$    /seo-friendly-url/ [I,R=301]

اجعل عنوان URL المعاد كتابته مختلفًا بشكل تافهة عن سلسلة المطابقة إعادة توجيه - في هذه الحالة إضافة غير ضرورية "؟":

RewriteRule ^/seo-friendly-url/ /test/index.cfm? [I,L]

نصائح أخرى

لديك اثنين من إعادة الكتابة هنا ويجب أن تعمل إذا قمت بذلك بشكل صحيح

  1. أول واحد لم يسبق له مثيل من قبل وكيل المستخدم. يطلب /صديقة لكبار المسئولين الاقتصاديين وتعيد كتابتها داخليًا وتستجيب

  2. والثاني ليس حقًا إعادة كتابة ، ولكنه إعادة توجيه. ترسل ذلك مرة أخرى إلى العميل ويعيد إعادة تكوين /سدوة محركات البحث-أعتقد أنك بحاجة إلى استخدام [r = 301 ، l] للقول إن هذه هي نهاية الخط-فقط إرجاعها (لا تفعل ذلك (لا تفعل ذلك الذي - التي)

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