如何自动将浏览器URL重定向到另一个页面?


0

我想要的:当用户键入某个URL,例如reddit.com或cracked.com时,他们会自动重定向到另一个站点...比如说khanacademy.org或其他什么。

我在我当地的图书馆做志工作,设置了一些电脑,他们想“鼓励”孩子们访问某些网站而不是其他网站。除了伦理之外,我想知道如何实现除了hosts.txt文件中的禁令之外的其他方式。

PS - 我是否说过我是一个禁止孩子使用Reddit的怪物?是的,再次抱歉...只是想到我阻止孩子们制作更多疯狂的愤怒漫画,新奇的帐户和双关语来填补网站。 ಠ_ಠ


如果您正在查看Chrome扩展程序,请回答类似问题 superuser.com/q/284110/4377
Sathyajith Bhat

Answers:


2

一个更简单的方法是使用 主机 如果您知道要访问的网站的IP,则很容易规避。另一种选择是 http://www.opendns.com/


但是:hosts文件只有在目标站点不在某个共享主机上时才有效。喜欢 ping gmail.com 可能屈服 74.125.79.18,但缺少HTTP Host: 头, http:\\74.125.79.18 将取一个到谷歌搜索:http:\\ 74.125.79.18(好的,第6编辑:评论中的链接不允许IP地址?)
Arjan

我找不到有关的信息 重定向 在OpenDNS上。 (即便如此:对于学校来说,这是一个很好的解决方案,如果可以在路由器中设置一些东西,甚至可以超越孩子!)
Arjan

@Arjan - 我很确定你可以在阻止它时重定向一个url。
Nifle

Hrm,它必须依赖于IP吗?如果我想要指向特定页面而不仅仅是基本站点?
binarysolo

@Binary - 是的快速解决方案我很害怕。
Nifle

0

我能想到的最简单的方法是将主机名放在您要将其重定向到的站点的IP地址的hosts文件中。


0

正如@Arjan在他的评论中所指出的,主机解决方案不适用于CDN后面或共享主机中的站点。另一种解决方案是使用浏览器扩展,对于Chrome,您可以使用 webRequest API:

background.js

chrome.webRequest.onBeforeRequest.addListener(function (details) {
  return { redirectUrl: 'https://bar.com'};
}, {urls: ['https://foo.com/']}, ['blocking']);

的manifest.json

{
  "name": "redirect",
  "description": "Redirect foo to bar.",
  "version": "1.0",
  "permissions": ["webRequest", "webRequestBlocking", "https://foo.com/"],
  "background": { "scripts": ["background.js"] },
  "manifest_version": 2
}

将这两个文件放在一个文件夹中,然后转到加载扩展名 Chrome > Settings > Extensions > "Load unpacked extension",并选择文件所在的目录。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.