سؤال

آمل أن يتمكن الأشخاص من غير IIS من مساعدتي في ذلك على الرغم من أن المشكلة التي أواجهها تستند إلى خادم IIS6 الذي يعمل على isAPI_Rewriter.

الموقف هو أنني أقوم بتشغيل WordPress على IIS6 ، ويتم استخدام ISAPI_RewRiter للعمل كبديل لـ Mod_Rewrite ويعمل بشكل صحيح. مشكلتي هي أنه عندما أحصل عليه لإعادة كتابة عناوين URL الخاصة بي لـ WordPress (لذلك لا أحتاج إلى اسم ملف الفهرس. أو شيء مشابه) كان يضيف EURL.AXD/[سلسلة عشوائية] إلى نهاية عناوين URL ، وبالتالي تم إطعام هذا في طلب WordPress وكسره. قمت بتعيين قالب WordPress لإخراج عنوان URL المطلوب ويبدو شيئًا من هذا القبيل:

http://www.example.com/index.php/about/eurl.axd/b552863f2d5e9841b5d8b79b44aC02e8/

أعتقد أن هذا بسبب ترتيب المهنك لأشياء مختلفة في نظام IIS ، ويطلب من الجاني تشغيل جزء آخر من المشروع. أفضل الاستمرار في استخدام isAPI_Rewriter لرفع عنوان URL ، لذا أود أن أعرف هذا:

هل هناك أي طريقة للحصول على mod_rewrite لإزالة eurl.axd/[string] قبل إطعامها إلى النظام؟

يظهر ملف .htaccess الخاص بي حاليًا على هذا النحو:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# The following line excludes folders from rewriting
RewriteCond %{REQUEST_URI} !^/folder-name/

RewriteRule ^/(.*)$ /$1 [NC,L]

شكرًا على كل المساعدة ، إنه دائمًا ما يكون موضع تقدير كبير.


تحرير: لقد قمت بتعديل HTACCESS بناءً على الاقتراحات ويبدو أنه يعمل بشكل جيد من الاختبارات القصيرة التي أجريتها. لقد نشرتها أدناه.

RewriteEngine on
RewriteBase /

# This is used to strip ASP.net eurl.axd bits
# from the URL so wordpress can use permalinks


# For the root
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/wp-admin/
RewriteRule ^eurl\.axd/[0-9a-f]+/$ index.php [NC,L]


# For internal permalinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/wp-admin/
RewriteRule ^(.*)/eurl\.axd/[0-9a-f]+/$ index.php/$1 [NC,L]
هل كانت مفيدة؟

المحلول

يجب أن تعمل شيء من هذا القبيل بالقرب من الجزء العلوي من قائمة إعادة الكتابة:

RewriteRule ^(.*)/eurl\.axd/[0-9a-f]+/$ /$1

نصائح أخرى

يمكنني استخدام regex التالية كما أول حكم مع الأيوني isapi rewriter لمواقع الويب تعمل على ASP.NET 4 على IIS 6 لعلاج المشاكل الناجمة عن كسر التغيير تم تقديمه مع ASP.NET 4:

RewriteRule ^(.*)/eurl.axd/[a-f0-9]{32}(.*)$ $1$2

هذا اسمحوا لي مرة أخرى باستخدام عناوين URL بدون تمديد.

لاحظ أن المجموعة الثانية تلتقط QueryString إذا كانت موجودة وتُعيد تجديدها إلى عنوان URL المعاد كتابته.

ونعم ، إنه ميزة ، وليس خطأ.

لقد واجهت مشكلة مماثلة مع ميزة Extension V4.0 ASP.NET أقل على عنوان URL على II6 ووجدت حلًا من خلال مزود وحدة إعادة كتابة ISAPI ، لا يتطلب إيقاف تشغيله. Theissue والحل كما واجهنا هو موثق هنا http://www.vanadiumtech.com/ourblog/post/2011/08/12/cause-of-eurlaxd.aspx

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