您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Redirect any Reddit domain that isn't "old" to old.reddit.com while keeping the rest of the URL. Remove string after the last / in old.reddit.com URLs. Integrate shouldExcludePath function.
// ==UserScript== // @name Redirect Reddit URLs // @namespace http://tampermonkey.net/ // @version 0.1 // @description Redirect any Reddit domain that isn't "old" to old.reddit.com while keeping the rest of the URL. Remove string after the last / in old.reddit.com URLs. Integrate shouldExcludePath function. // @author You // @match *://*.reddit.com/* // @grant none // ==/UserScript== (function() { 'use strict'; function removeDotsFromPath() { const host = window.location.host; const path = window.location.pathname; if (host === "old.reddit.com") { if (path.includes("/domain/")) { const newPath = path.replace(/\.[a-z]+$/, ''); const newUrl = `https://${host}${newPath}${window.location.search}${window.location.hash}`; if (newUrl !== window.location.href) { window.location.replace(newUrl); } } else if (path.includes(".")) { const newPath = path.replace(/\.[a-z]+$/, ''); const newUrl = `https://${host}${newPath}${window.location.search}${window.location.hash}`; if (newUrl !== window.location.href) { window.location.replace(newUrl); } } } } function shouldExcludePath(path) { // Define paths to exclude const excludePaths = ['/poll/', '/gallery/', '/media']; // Check if the path contains any excluded substring and is not preceded by "/r" return excludePaths.some(exclude => path.includes(exclude) && !path.includes('/r' + exclude)); } function redirectNonOldDomains() { const host = window.location.host; const path = window.location.pathname; const nonOldDomainRegex = /^(?!old\.)/; if (nonOldDomainRegex.test(host) && !shouldExcludePath(path)) { window.location.href = 'https://old.reddit.com' + window.location.pathname + window.location.search + window.location.hash; } } function redirectToOldRedditIfNotOnOldOrRedditOrTwoLetterDomain() { const host = window.location.host; const path = window.location.pathname; if ( host === "www.reddit.com" && !shouldExcludePath(path) ) { redirectToOldReddit(); } else if (host === "old.reddit.com" && shouldExcludePath(path)) { const newUrl = `https://www.reddit.com${path}${window.location.search}${window.location.hash}`; window.location.replace(newUrl); } } function redirectToOldReddit() { window.location.href = 'https://old.reddit.com' + window.location.pathname + window.location.search + window.location.hash; } // Call the functions removeDotsFromPath(); redirectNonOldDomains(); redirectToOldRedditIfNotOnOldOrRedditOrTwoLetterDomain(); })();