您需要先安装一个扩展,例如 篡改猴、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();
- })();