mod_rewrite - كيفية إعادة توجيه 101 عنوان URL القديم إلى واحدة جديدة

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

سؤال

أحتاج إلى الاستيلاء على بعض عناوين URL القديمة الخاصة بموقع الويب الخاص بي والقيام بتقسيم 301 إعادة توجيه إلى الجدد، لأنها مفهرسة بالفعل ولا نريد تفقد الأهمية بعد التغيير. عنوان URL القديم هو في الواقع قبيح للغاية ولسبب ما حاول كل ما أحاول القيام به لإعادة كتابةه لا يعمل. ها هو:

http://www.mywebsite.com/ExibeCurso.asp?Comando=TreinamentoGeral&codCurso=136&Titulo=Como%20Estruturar%20um%20Sistema%20Gerencial%20de%20Controles%20Organizacionais,13

في الأساس، أحتاج إلى ترجمة ذلك إلى شيء مثل:

http://www.mywebsite.com/curso/136

من عنوان URL القديم الذي أحتاج إلى التحقق مما إذا كان المستخدم كتب "exibecurso.asp"؛ ثم أعلم أنني يجب أن أرسله هنا: / Curso. يجب علي أيضا الاستيلاء على عدد صحيح كان في المعلمة QueryString "Codcurso" (136). ما هو التعبير العادي الذي يجب أن أستخدمه لهذا الغرض. أنا أستخدم ISAPI_REWRITE 3، والتي تنفذ أساسا HTACCESS على IIS، لذلك يجب ألا يكون هناك فرق من حيث بناء الجملة. شكرا.

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

المحلول

جرب هذه القاعدة:

RewriteCond %{QUERY_STRING} ^([^&]*&)*codCurso=([0-9]+)(&.*)?$
RewriteRule ^/ExibeCurso\.asp$ /curso/%2? [L,R=301]

لكنني لست متأكدا مما إذا كان إعادة كتابة ISAPI يتطلب النمط للبدء في مائل.

نصائح أخرى

خارج الجزء العلوي من رأسي، شيء مثل هذا يجب أن تعمل:

RewriteRule ^ExibeCurso.asp(.*)$ http://www.mywebsite.com/curso/$1 [L,R=301]

من شأنه أن يرسل على الأقل حركة المرور إلى / curso / مع جميع المعلمات المرفقة. ربما من الأفضل معالجة ذلك من هناك.

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