เปลี่ยนเส้นทาง URL ใน Chrome หรือไม่


37

มีส่วนขยายใด ๆ กับ Chrome ที่จะให้ฉันบังคับ URL จากโดเมนหนึ่ง ๆ ให้เปลี่ยนเส้นทางไปยังโดเมนอื่นหรือไม่

(เช่นเปลี่ยนเส้นทางhttp://www.google.comเป็นhttps://encrypted.google.com)

หมายเหตุ : ฉันกำลังมองหาผู้เปลี่ยนเส้นทางโดยพลการไม่ใช่ KB SSL Enforcer ซึ่งทำงานเฉพาะกับงานการเปลี่ยนเส้นทางไปยัง HTTPS เท่านั้น


คุณสามารถลองใช้ไฟล์ HOSTS เป็นวิธีอื่นได้
Synetech

@Synetech: นั่นจะเปลี่ยนเส้นทางไปยังหน้ารูทหรืออะไรก็ตามที่มีโดเมนเฉพาะหรือไม่
Mehrdad

มันจะเปลี่ยนเส้นทางทั้งโดเมน (หรือโดเมนย่อยแล้วแต่กรณี)
Synetech

1
@JustinBuser มันจะเปลี่ยนเส้นทางเบราว์เซอร์จาก IP ดั้งเดิมไปยัง IP ที่ระบุ ลองนึกภาพการขุดคูเพื่อไปตามเส้นทางน้ำ คุณขุดคูน้ำเปิดเขื่อนจากนั้นน้ำจะไปยังจุดใหม่แทนที่จะไปที่ไหน ฉันไม่เคยพูดอะไรเกี่ยวกับ 302 ดังนั้นคุณจึงเป็นเพียงการโต้แย้งความหมาย
Synetech

1
ฉันไม่มีความคิดที่เข้ารหัส. google.com! Cool
tony19

คำตอบ:


32

ฉันได้สร้างส่วนขยายของ Chrome ซึ่งทำสิ่งนี้

หมายเหตุ: ฉันสร้างสิ่งนี้ขึ้นมาสำหรับ 2 ไซต์ - เพียงเพื่อประโยชน์ของมัน - ไม่ได้คุณภาพระดับมืออาชีพ™ กรุณาอย่ายิงฉันสำหรับรหัสเส็งเคร็ง :)

แก้ไข: อัปเดตเป็นรายการ v2 ซึ่งมีข้อ จำกัด เพิ่มเติมบางอย่าง

manifest.json

{
  "name": "URL Redirect",
  "version": "0.2",
  "description": "Checks URL and redirects as required.",
  "background": { 
     "page":"bg.html"
     },
   "manifest_version": 2,
   "content_scripts": [
   {
     "matches": ["http://*/*", "https://*/*"],
     "js": ["content.js"]
   }
   ],
  "permissions": ["tabs"]
}

bg.html

<html>
  <script src="redirect.js"></script>
</html>

redirect.js

chrome.extension.onRequest.addListener(function(request, sender) {
        chrome.tabs.update(sender.tab.id, {url: request.redirect});
    });

content.js

var pattern=/\bBlocked/;
var viewtext_base_url = "http://viewtext.org/article?url=";
var newurl;
if (pattern.test(window.document.title)) // if it matches pattern defined above
{
  newurl = viewtext_base_url + encodeURIComponent(window.location.href);
  chrome.extension.sendRequest({redirect: newurl}); // send message to redirect

}

ในการติดตั้งสิ่งนี้ให้สร้างไฟล์ที่มีชื่อไฟล์ตามที่ระบุไว้ข้างต้น codeblock

ป้อนคำอธิบายรูปภาพที่นี่

เมื่อสร้างไฟล์ทั้ง 3 ไฟล์แล้วให้คลิกที่เมนู Chrome →เครื่องมือ→ส่วนขยาย คลิกที่ "+" ในโหมดนักพัฒนาซอฟต์แวร์ คลิกที่ Load Unpacked extension และชี้ไปที่ไดเรกทอรีที่จัดเก็บไฟล์

ป้อนคำอธิบายรูปภาพที่นี่

จำเป็นต้องแก้ไขไฟล์และถอนการติดตั้งและติดตั้งส่วนขยายดังกล่าวข้างต้น


เย็นสบาย! ฉันจะติดตั้งได้อย่างไร (ขออภัยฉันไม่มีประสบการณ์กับการพัฒนาส่วนขยายของ Chrome เลยฮ่า ๆ )
Mehrdad

@ Mehrdad ขยายคำตอบ
Sathyajith Bhat

ofcourse ถ้าคุณไม่ได้มองไปที่การแก้ไขไฟล์ที่ฉันจะได้บรรจุไฟล์ในส่วนขยายของ Chrome ....
Sathyajith Bhat

สวยขอบคุณมาก! มันสอน JavaScript ให้ฉันด้วย! : D
Mehrdad

ยินดีต้อนรับ! ฉันได้พัฒนาสิ่งนี้เพื่อเรียนรู้การพัฒนาส่วนขยายของ Chrome (และจะได้รับรอบไอ Websense ไอ )
Sathyajith Bhat

12

ฉันรู้ว่าฉันมาช้าในการตอบคำถามนี้ฉันยังคงต้องการตอบคำถามนี้สำหรับผู้อ่านในอนาคต มองไปที่

Requestly - ส่วนขยายของ Chrome เพื่อแก้ไขคำขอเครือข่าย

ปัจจุบันคุณสามารถตั้งค่ากฎสำหรับ

  1. เปลี่ยนเส้นทาง URL คำขอไปยัง URL อื่น
  2. บล็อกบางคำขอ
  3. แทนที่บางส่วนใน URL ด้วยสตริงอื่น (สามารถแทนที่ URL ทั้งหมดได้)
  4. เพิ่ม / ลบ / แก้ไขส่วนหัวในคำขอ HTTP และการตอบกลับ คุณสามารถตั้งค่ากฎการแก้ไขส่วนหัวสำหรับ URL ที่ระบุได้ทันที

ภาพหน้าจอเพื่อความเข้าใจเพิ่มเติม:

  • รายการกฎ

รายการกฎ

  • รายการประเภทกฎ

รายการประเภทกฎ

  • ใหม่กฎการเปลี่ยนเส้นทาง

การสร้างกฎการเปลี่ยนเส้นทาง

มีหลายสิ่งหลายอย่างในโรดแมพที่จะครอบคลุมในแบบที่ต้องการ

  • การตั้งค่าส่วนหัวที่กำหนดเอง (เสร็จสิ้น)
  • การสลับตัวแทนผู้ใช้
  • การตั้งค่าพารามิเตอร์ตามคำขอ (เสร็จสิ้น) ใช้คุณสมบัติการเปลี่ยนเส้นทาง / แทนที่เพื่อทำสิ่งนี้

.. และอีกมากมาย

PS: ฉันได้สร้างสิ่งนี้ดังนั้นคุณสามารถโทษฉันถ้าคุณไม่พบว่ามีประโยชน์นี้ :)


การแก้ไขส่วนหัวมีอยู่ใน Requestly แล้ว
sachinjain024

1
นี่คือส่วนขยายที่ยอดเยี่ยม! ฉันเข้าสู่ระบบในเวลาเพียงเพื่อให้ฉันสามารถทำให้คุณมี 1 คนหวังมากขึ้นหาข้อมูลเกี่ยวกับมัน :)
Adi ulici

การสนับสนุน Regex มีให้บริการใน Requestly
sachinjain024

@ sachinjain024 ลิงก์ไปยัง gitub repo นั้นตายแล้ว
Andrei Kucharavy

9

ฉันได้พัฒนาตัวเปลี่ยนเส้นทางที่เป็นมิตรกับผู้ใช้ก่อนทำแพ็กเกจชื่อSwitcherooหากคุณสนใจ:

ตั้งค่ากฎการเปลี่ยนเส้นทางที่กำหนดเองสำหรับคำขอ http ใด ๆ เช่นหน้าเว็บสคริปต์รูปภาพ ฯลฯ ใช้สตริงแบบง่าย ๆ เพื่อแทนที่สิ่งนี้


4
โอเพ่นซอร์ส? :)
user72923

1
แย่เกินไป Switcheroo ไม่สนับสนุนการสลับรูปแบบ HTTP (ตามที่ระบุในตัวอย่างในคำถาม)
Martijn

2
ที่แย่ไปกว่านั้นคือต้องได้รับอนุญาตให้ "อ่านและเปลี่ยนแปลงข้อมูลทั้งหมดของคุณบนเว็บไซต์ที่คุณเยี่ยมชม" เพียงเพื่อเปลี่ยนเส้นทาง
Taylan

3

สายไปนิด แต่ส่วนขยายนี้ก็ควรทำเคล็ดลับ: เปลี่ยนเส้นทาง

และมันก็เป็นเปลี่ยนเส้นทางโดยพลการ


ใช้งานได้ดีในการหลีกเลี่ยงหน้าเริ่มต้นของ Facebook, จับคู่: http?: //www.facebook.com, ทดแทน: (. *), การแทนที่: facebook.com/messages
lony

3
โอ้ไม่มันถูกลบไปแล้ว? ดูดีมากจากหน้าจอ! (regexes และดังกล่าวซึ่งเป็นสิ่งที่ฉันต้องการ)
ดอนแฮทช์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.