إعادة كتابة الرابط

يستطيع Chute إعادة كتابة رابط الطلب بطرق مختلفة، أو رفض طلبات معينة حسب الرابط.

يمكن تطبيق قاعدة واحدة فقط لكل طلب.

ملاحظة: لا يُعالَج طلب HTTP العادي إلا حين يصل إلى Chute عبر بروكسي HTTP الخاص به؛ أما HTTP العادي الذي يصل عبر واجهة TUN فيُمرَّر دون أي تعديل. ويرسل Chute Android كل الحركة عبر TUN ما لم يُفعَّل بروكسي HTTP للنظام (System HTTP Proxy) في الإعدادات (Settings)، الذي يسلّم التطبيقات بروكسي HTTP الخاص بـ Chute (على Android 10 وما بعده؛ وهو معطّل افتراضياً). ولا يُعالَج طلب HTTPS إلا حين يُفك تشفير مضيفه عبر MitM.

مثال:

[URL Rewrite]
^http://www\.google\.cn http://www.google.com header
^http://amazon\.cn https://z.cn 302
^http://ad\.com/ad\.png _ reject
^http://tracker\.com/event _ reject-200
^http://ad\.com/pixel _ reject-img
^http://api\.example\.com/block _ reject-dict
^http://api\.example\.com/list _ reject-array
^http://ad\.com/beacon _ reject-tinygif

تتكون قاعدة إعادة الكتابة من 3 أجزاء: تعبير نمطي، الاستبدال، والنوع. تُفصل الأجزاء بالمسافات، وأول كلمة تبدأ بـ # أو ; أو // تفتح تعليقاً يمتد حتى نهاية السطر؛ ولا اقتباس في هذا القسم. راجع التعليقات.

بالنسبة لأنواع الرفض (reject و reject-200 و reject-img و reject-dict و reject-array و reject-tinygif)، تُقبل أيضاً صيغة مختصرة من رمزين <pattern> reject بدون العنصر النائب _. وتقبل الصيغة المختصرة أيضاً reject-drop وreject-no-drop من Shadowrocket، ويُجاب عن كليهما كـ reject، وreject-video الذي يُجاب عنه كـ reject-200؛ وهذه الثلاث مقبولة في الصيغة المختصرة فقط، لا كنوع لسطر من ثلاثة رموز. والسطر ذو الرمزين الذي ليس رمزه الثاني كلمة رفض يُقرأ كإعادة كتابة بوضع header إلى ذلك العنوان: ^http://a\.com http://b.com تساوي ^http://a\.com http://b.com header. انتبه لتهجئة كلمات الرفض — فـ reject200 ليست منها، لذا يُقرأ ^http://ad\.com reject200 كإعادة كتابة بوضع header إلى reject200. وهذا الاستبدال ليس رابطاً مطلقاً ولا مساراً مطلقاً، فترفض إعادة الكتابة وقت الطلب مع تحذير في السجل ويُمرَّر الطلب كما هو: لا مرفوضاً ولا معاد كتابته.

الإجابات التي يولّدها Chute بنفسه — Map Local، وresponse السكريبت، وإجابات إعادة كتابة الرابط وسياسات REJECT وصفحة الخطأ الخاصة بها — تتبع HTTP: فالإجابة عن طلب HEAD هي الترويسة وحدها، مع Content-Length الذي كان سيحصل عليه طلب GET، والإجابة ذات الحالة 204 أو 205 أو 304 لا تحمل محتوى ولا Content-Length.

نمط الترويسة

سيعدل Chute ترويسة الطلب ويعيد توجيه الطلب إلى مضيف آخر إذا لزم الأمر. لن يلاحظ العميل إجراء إعادة الكتابة هذا. (يقابل هذا النمط "Map Remote" في Surge.)

سيتم تعديل حقل "Host" في ترويسة الطلب ليطابق الرابط الجديد.

[URL Rewrite]
^http://www\.google\.cn http://www.google.com header

يمكن أن يكون الاستبدال أيضاً بصيغة المسار فقط مثل /new/path. في هذه الحالة يُعاد كتابة سطر الطلب فقط إلى المسار الجديد، ويبقى الطلب مرسلاً إلى المضيف نفسه. ولا يُقرأ الاستبدال رابطاً إلا إذا بدأ بمخطط يليه ://، لذا يبقى المسار الذي يحمل رابطاً في سلسلة الاستعلام، مثل /go?to=http://example.com/، استبدالاً بصيغة المسار فقط.

عندما يتعذر إعادة كتابة الوجهة في مكانها — على سبيل المثال إعادة كتابة طلب HTTP عادي إلى رابط https://، أو إعادة كتابة طلب HTTPS (مع تفعيل MitM) إلى أصل (origin) مختلف، أو مطابقة طلب تالٍ على اتصال HTTP عادي مفتوح أصلاً بـ keep-alive بقاعدة تسمّي مضيفاً آخر — يتراجع Chute تلقائياً إلى الرد على العميل بإعادة توجيه 307 إلى الرابط الجديد بدلاً من إعادة كتابة الترويسة الشفافة.

نمط 302

سيرجع Chute ببساطة استجابة إعادة توجيه 302. يمكن إعادة توجيه طلبات HTTPS إذا تم تفعيل MitM لاسم المضيف.

[URL Rewrite]
^http://amazon\.cn https://z.cn 302

نمط 307

سيرجع Chute ببساطة استجابة إعادة توجيه مؤقت 307. يمكن إعادة توجيه طلبات HTTPS إذا تم تفعيل MitM لاسم المضيف.

[URL Rewrite]
^http://amazon\.cn https://z.cn 307

نمط الرفض

رفض الطلب إذا تطابق النمط. سيتم تجاهل معامل الاستبدال. يرجع استجابة HTTP 503. سيتم رفض طلبات HTTPS إذا تم تفعيل MitM لاسم المضيف.

[URL Rewrite]
^http://ad\.com/ad\.png _ reject

نمط Reject-200

رفض الطلب بحالة HTTP 200 OK ومحتوى بطول صفر. مفيد لحظر طلبات التتبع بصمت دون تشغيل معالجة الأخطاء.

[URL Rewrite]
^http://tracker\.com/event _ reject-200

نمط Reject-Img

رفض الطلب بإرجاع صورة GIF بيضاء 1x1 (HTTP 200 OK). مفيد لحظر صور الإعلانات دون التسبب في ظهور عناصر نائبة للصور المكسورة.

[URL Rewrite]
^http://ad\.com/pixel _ reject-img

نمط Reject-Dict

رفض الطلب بإرجاع كائن JSON فارغ {} (HTTP 200 OK). مفيد لحظر استدعاءات API التي تتوقع استجابة JSON.

[URL Rewrite]
^http://api\.example\.com/block _ reject-dict

نمط Reject-Array

رفض الطلب بإرجاع مصفوفة JSON فارغة [] (HTTP 200 OK). مفيد لحظر استدعاءات API التي تتوقع قائمة.

[URL Rewrite]
^http://api\.example\.com/list _ reject-array

نمط Reject-TinyGIF

رفض الطلب بإرجاع صورة GIF بحجم 1×1 (HTTP 200 OK) — وهي تسمية Surge للاستجابة نفسها التي يعطيها reject-img.

[URL Rewrite]
^http://ad\.com/beacon _ reject-tinygif
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-29 21:57:05

هذه الصفحة ترجمة للنسخة الإنجليزية. في حال وجود اختلاف، يُعتمد على النسخة الإنجليزية.

ملاحظة: التطبيق لا يدعم اللغة العربية حاليًا.

results matching ""

    No results matching ""