feat(web): redirect cmux.dev to cmux.com with 301s for SEO (#1716)
Redirect cmux.dev to cmux.com with 301s for SEO
This commit is contained in:
parent
55cb5c6763
commit
33d21ea19e
25 changed files with 42 additions and 27 deletions
|
|
@ -21,7 +21,7 @@ export default function PrivacyPolicyPage() {
|
|||
<p>
|
||||
For purposes of this policy, “Site” refers to the
|
||||
Company’s website at{" "}
|
||||
<a href="https://cmux.dev">cmux.dev</a>.
|
||||
<a href="https://cmux.com">cmux.com</a>.
|
||||
“Application” refers to the cmux desktop application for
|
||||
macOS. “Service” refers to the Site and Application
|
||||
collectively. The terms “we,” “us,” and
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ export default function TermsOfServicePage() {
|
|||
|
||||
<p>
|
||||
The website located at{" "}
|
||||
<a href="https://cmux.dev">cmux.dev</a> (the
|
||||
<a href="https://cmux.com">cmux.com</a> (the
|
||||
“Site”) and the cmux desktop application (the
|
||||
“Application”) are copyrighted works belonging to Manaflow
|
||||
(“Company”, “us”, “our”, and
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ export async function generateMetadata({
|
|||
const { locale } = await params;
|
||||
const t = await getTranslations({ locale, namespace: "meta" });
|
||||
const url =
|
||||
locale === "en" ? "https://cmux.dev" : `https://cmux.dev/${locale}`;
|
||||
locale === "en" ? "https://cmux.com" : `https://cmux.com/${locale}`;
|
||||
return {
|
||||
title: t("title"),
|
||||
description: t("description"),
|
||||
|
|
@ -61,7 +61,7 @@ export async function generateMetadata({
|
|||
title: t("title"),
|
||||
description: t("ogDescription"),
|
||||
},
|
||||
metadataBase: new URL("https://cmux.dev"),
|
||||
metadataBase: new URL("https://cmux.com"),
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -94,7 +94,7 @@ export default async function LocaleLayout({
|
|||
name: "cmux",
|
||||
operatingSystem: "macOS",
|
||||
applicationCategory: "DeveloperApplication",
|
||||
url: "https://cmux.dev",
|
||||
url: "https://cmux.com",
|
||||
downloadUrl:
|
||||
"https://github.com/manaflow-ai/cmux/releases/latest/download/cmux-macos.dmg",
|
||||
description:
|
||||
|
|
|
|||
|
|
@ -3,6 +3,6 @@ import type { MetadataRoute } from "next";
|
|||
export default function robots(): MetadataRoute.Robots {
|
||||
return {
|
||||
rules: { userAgent: "*", allow: "/" },
|
||||
sitemap: "https://cmux.dev/sitemap.xml",
|
||||
sitemap: "https://cmux.com/sitemap.xml",
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import type { MetadataRoute } from "next";
|
|||
import { locales } from "../i18n/routing";
|
||||
|
||||
export default function sitemap(): MetadataRoute.Sitemap {
|
||||
const base = "https://cmux.dev";
|
||||
const base = "https://cmux.com";
|
||||
|
||||
const paths = [
|
||||
{ path: "", lastModified: new Date(), changeFrequency: "weekly" as const, priority: 1 },
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@
|
|||
"afruth": "أعجبني، استخدمته في اليوم الماضي على ثلاثة مشاريع متوازية كل منها بعدة worktrees. استخدامه مع lazygit وyazi / nvim جعلني أكثر إنتاجية قليلاً من المعتاد دون الحاجة لملاحقة عدة نسخ من ghostty / iTerm. كما يبدو أكثر طبيعية من tmux.",
|
||||
"northprint": "جربت cmux لأنه بدا جيداً، وهو جيد فعلاً",
|
||||
"indykish": "cmux جيد جداً.",
|
||||
"kataring": "انتقلت إلى cmux.dev",
|
||||
"kataring": "انتقلت إلى cmux.com",
|
||||
"scottw": "كان هذا اكتشافاً مفيداً جداً. لا أستطيع التوصية به بما فيه الكفاية.",
|
||||
"johnblythe": "حصلت عليه في عطلة نهاية الأسبوع وأحببته. كنت أنتظر شيئاً كهذا.",
|
||||
"bchris91": "هذا بالضبط ما أردته. عمل مذهل، شكراً لكم!",
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@
|
|||
"afruth": "Sviđa mi se, koristio sam ga proteklog dana na tri paralelna projekta, svaki sa nekoliko worktree-ova. Imati ovo u paru sa lazygit-om i yazi / nvim-om učinilo me malo produktivnijim nego obično bez jurnjave za više ghostty / iTerm instanci. Takođe se osjeća prirodnije od tmux-a.",
|
||||
"northprint": "Probao sam cmux jer je izgledao dobro — dobar je",
|
||||
"indykish": "cmux je prilično dobar.",
|
||||
"kataring": "Prešao sam na cmux.dev",
|
||||
"kataring": "Prešao sam na cmux.com",
|
||||
"scottw": "Ovo je bio tako koristan nalaz. Ne mogu ga dovoljno preporučiti.",
|
||||
"johnblythe": "uzeo ovo tokom vikenda i volio sam ga. čekao sam nešto ovako.",
|
||||
"bchris91": "Ovo je tačno ono što sam htio. Nevjerovatan posao, hvala!",
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@
|
|||
"afruth": "Jeg kan lide det, kørte det den seneste dag på tre parallelle projekter hver med flere worktrees. At have det parret med lazygit og yazi / nvim gjorde mig lidt mere produktiv end normalt uden at skulle jage flere ghostty / iTerm-instanser. Føles også mere naturligt end tmux.",
|
||||
"northprint": "Prøvede cmux da det så godt ud — det er godt",
|
||||
"indykish": "cmux er ret godt.",
|
||||
"kataring": "Skiftede til cmux.dev",
|
||||
"kataring": "Skiftede til cmux.com",
|
||||
"scottw": "Det har været sådan et nyttigt fund. Jeg kan ikke anbefale det nok.",
|
||||
"johnblythe": "hentede det i weekenden og elskede det. har ventet på noget som dette.",
|
||||
"bchris91": "Det er præcis hvad jeg har ønsket mig. Fantastisk arbejde, tak!",
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@
|
|||
"afruth": "Gefällt mir. Habe es gestern mit drei parallelen Projekten laufen lassen, jedes mit mehreren Worktrees. In Kombination mit lazygit und yazi/nvim war ich etwas produktiver als sonst, ohne mehreren ghostty/iTerm-Instanzen hinterherjagen zu müssen. Fühlt sich auch natürlicher an als tmux.",
|
||||
"northprint": "cmux ausprobiert, weil es gut aussah, und es ist gut",
|
||||
"indykish": "cmux ist ziemlich gut.",
|
||||
"kataring": "Zu cmux.dev gewechselt",
|
||||
"kataring": "Zu cmux.com gewechselt",
|
||||
"scottw": "Das war so ein nützlicher Fund. Ich kann es nur weiterempfehlen.",
|
||||
"johnblythe": "Am Wochenende installiert und sofort begeistert. Habe auf sowas gewartet.",
|
||||
"bchris91": "Genau das, was ich wollte. Tolle Arbeit, danke!",
|
||||
|
|
|
|||
|
|
@ -577,7 +577,7 @@
|
|||
"afruth": "I like it, ran it in the past day on three parallel projects each with several worktrees. Having this paired with lazygit and yazi / nvim made me a bit more productive than usual without having to chase multiple ghostty / iTerm instances. Also feels more natural than tmux.",
|
||||
"northprint": "Tried cmux since it looked good — it's good",
|
||||
"indykish": "cmux is pretty good.",
|
||||
"kataring": "Switched to cmux.dev",
|
||||
"kataring": "Switched to cmux.com",
|
||||
"scottw": "This has been such a useful find. I can't recommend it enough.",
|
||||
"johnblythe": "grabbed this over the weekend and loved it. been waiting for something like this.",
|
||||
"bchris91": "This is exactly what I've wanted. Amazing job thank you!",
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@
|
|||
"afruth": "Me gusta. Ayer lo use con tres proyectos en paralelo, cada uno con varios worktrees. Combinado con lazygit y yazi/nvim me hizo un poco mas productivo de lo habitual sin tener que perseguir multiples instancias de ghostty/iTerm. Tambien se siente mas natural que tmux.",
|
||||
"northprint": "Probe cmux porque se veia bien, y es bueno",
|
||||
"indykish": "cmux esta bastante bien.",
|
||||
"kataring": "Me cambie a cmux.dev",
|
||||
"kataring": "Me cambie a cmux.com",
|
||||
"scottw": "Ha sido un hallazgo muy útil. No puedo recomendarlo suficiente.",
|
||||
"johnblythe": "Lo instalé el fin de semana y me encantó. Estuve esperando algo así.",
|
||||
"bchris91": "Es exactamente lo que quería. ¡Increíble trabajo, gracias!",
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@
|
|||
"afruth": "J'aime bien. Je l'ai utilise hier sur trois projets en parallele, chacun avec plusieurs worktrees. En combinaison avec lazygit et yazi/nvim, j'etais un peu plus productif que d'habitude sans avoir a jongler entre plusieurs instances ghostty/iTerm. Ca semble aussi plus naturel que tmux.",
|
||||
"northprint": "J'ai essaye cmux parce que ca avait l'air bien, et c'est bien",
|
||||
"indykish": "cmux est plutot bon.",
|
||||
"kataring": "Je suis passe a cmux.dev",
|
||||
"kataring": "Je suis passe a cmux.com",
|
||||
"scottw": "C'est une decouverte tellement utile. Je ne peux que le recommander.",
|
||||
"johnblythe": "Installe ce week-end et j'adore. J'attendais quelque chose comme ca.",
|
||||
"bchris91": "C'est exactement ce que je voulais. Travail incroyable, merci !",
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@
|
|||
"afruth": "Mi piace, l'ho usato nell'ultimo giorno su tre progetti paralleli, ciascuno con diversi worktree. Averlo insieme a lazygit e yazi / nvim mi ha reso un po' più produttivo del solito senza dover rincorrere più istanze di ghostty / iTerm. Inoltre sembra più naturale di tmux.",
|
||||
"northprint": "Ho provato cmux perché sembrava buono, ed è buono",
|
||||
"indykish": "cmux è piuttosto buono.",
|
||||
"kataring": "Sono passato a cmux.dev",
|
||||
"kataring": "Sono passato a cmux.com",
|
||||
"scottw": "È stata una scoperta così utile. Non lo consiglio mai abbastanza.",
|
||||
"johnblythe": "l'ho preso nel weekend e mi è piaciuto. aspettavo qualcosa del genere.",
|
||||
"bchris91": "Questo è esattamente quello che volevo. Lavoro fantastico, grazie!",
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@
|
|||
"afruth": "気に入った。昨日3つのプロジェクトをそれぞれ複数のworktreeで並行作業した。lazygitやyazi/nvimと組み合わせると、複数のghostty/iTermインスタンスを追いかけなくても普段より生産性が上がった。tmuxより自然な感じ。",
|
||||
"northprint": "cmux良さそうなので入れてみたけれど、良い",
|
||||
"indykish": "cmux、かなりいい。",
|
||||
"kataring": "cmux.dev に乗り換えた",
|
||||
"kataring": "cmux.com に乗り換えた",
|
||||
"scottw": "本当に便利な発見だった。みんなにおすすめしたい。",
|
||||
"johnblythe": "週末に入れて気に入った。こういうのをずっと待ってた。",
|
||||
"bchris91": "まさに欲しかったもの。最高です、ありがとう!",
|
||||
|
|
|
|||
|
|
@ -571,7 +571,7 @@
|
|||
"afruth": "ខ្ញុំចូលចិត្តវា ប្រើក្នុងថ្ងៃកន្លងមកជាមួយគម្រោងបីស្របគ្នា នីមួយៗមាន worktree ជាច្រើន។ ការមានវាជាមួយ lazygit និង yazi / nvim ធ្វើឱ្យខ្ញុំផលិតភាពជាងធម្មតាដោយមិនចាំបាច់តាមរក ghostty / iTerm ជាច្រើនវិន្ដូ។ ក៏មានអារម្មណ៍ធម្មជាតិជាង tmux ដែរ។",
|
||||
"northprint": "សាកល្បង cmux ព្រោះវាមើលទៅល្អ — វាល្អពិតមែន",
|
||||
"indykish": "cmux ល្អដែរ។",
|
||||
"kataring": "ប្ដូរមកប្រើ cmux.dev",
|
||||
"kataring": "ប្ដូរមកប្រើ cmux.com",
|
||||
"scottw": "នេះជាការរកឃើញដ៏មានប្រយោជន៍។ ខ្ញុំណែនាំវាខ្លាំងណាស់។",
|
||||
"johnblythe": "ទាញយកមកចុងសប្តាហ៍កន្លងមក ហើយចូលចិត្តវា។ រង់ចាំអ្វីបែបនេះយូរហើយ។",
|
||||
"bchris91": "នេះជាអ្វីដែលខ្ញុំចង់បានពិតប្រាកដ។ ការងារអស្ចារ្យ អរគុណ!",
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@
|
|||
"afruth": "마음에 들어요. 어제 세 개 프로젝트를 각각 여러 worktree로 병렬 작업했는데, lazygit이랑 yazi/nvim이랑 같이 쓰니까 여러 ghostty/iTerm 인스턴스를 쫓아다닐 필요 없이 평소보다 생산성이 올랐어요. tmux보다 자연스러운 느낌이에요.",
|
||||
"northprint": "cmux 좋아 보여서 써봤는데, 좋다",
|
||||
"indykish": "cmux 꽤 괜찮네요.",
|
||||
"kataring": "cmux.dev로 갈아탔다",
|
||||
"kataring": "cmux.com로 갈아탔다",
|
||||
"scottw": "정말 유용한 발견이에요. 충분히 추천할 수 없을 정도로.",
|
||||
"johnblythe": "주말에 깔아봤는데 좋아요. 이런 걸 기다리고 있었어요.",
|
||||
"bchris91": "딱 원하던 거예요. 정말 대단해요, 감사합니다!",
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@
|
|||
"afruth": "Jeg liker det, brukte det i løpet av den siste dagen på tre parallelle prosjekter med flere worktrees. Å ha dette sammen med lazygit og yazi / nvim gjorde meg litt mer produktiv enn vanlig uten å måtte jakte på flere ghostty / iTerm-instanser. Føles også mer naturlig enn tmux.",
|
||||
"northprint": "Prøvde cmux siden det så bra ut — det er bra",
|
||||
"indykish": "cmux er ganske bra.",
|
||||
"kataring": "Byttet til cmux.dev",
|
||||
"kataring": "Byttet til cmux.com",
|
||||
"scottw": "Dette har vært et så nyttig funn. Kan ikke anbefale det nok.",
|
||||
"johnblythe": "lastet dette ned i helgen og elsket det. har ventet på noe slikt.",
|
||||
"bchris91": "Dette er nøyaktig det jeg har ønsket meg. Fantastisk jobb, takk!",
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@
|
|||
"afruth": "Podoba mi się, używałem tego ostatniego dnia na trzech równoległych projektach, każdy z kilkoma worktree'ami. Mając to w parze z lazygit i yazi / nvim byłem trochę bardziej produktywny niż zwykle, bez konieczności ścigania wielu instancji ghostty / iTerm. Czuję się też bardziej naturalnie niż tmux.",
|
||||
"northprint": "Wypróbowałem cmux bo wyglądał dobrze, i jest dobry",
|
||||
"indykish": "cmux jest całkiem niezły.",
|
||||
"kataring": "Przeszedłem na cmux.dev",
|
||||
"kataring": "Przeszedłem na cmux.com",
|
||||
"scottw": "To było takie przydatne odkrycie. Nie mogę go wystarczająco polecić.",
|
||||
"johnblythe": "wziąłem to w weekend i pokochałem. czekałem na coś takiego.",
|
||||
"bchris91": "To jest dokładnie to, czego chciałem. Świetna robota, dziękuję!",
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@
|
|||
"afruth": "Gostei, usei no último dia em três projetos paralelos, cada um com vários worktrees. Ter isso junto com lazygit e yazi / nvim me deixou um pouco mais produtivo que o normal sem precisar ficar correndo atrás de várias instâncias de ghostty / iTerm. Também parece mais natural que tmux.",
|
||||
"northprint": "Experimentei o cmux porque parecia bom — é bom",
|
||||
"indykish": "cmux é bem bom.",
|
||||
"kataring": "Migrei para o cmux.dev",
|
||||
"kataring": "Migrei para o cmux.com",
|
||||
"scottw": "Essa foi uma descoberta muito útil. Recomendo demais.",
|
||||
"johnblythe": "baixei no fim de semana e adorei. estava esperando algo assim.",
|
||||
"bchris91": "Isso é exatamente o que eu queria. Trabalho incrível, obrigado!",
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@
|
|||
"afruth": "Мне нравится, использовал целый день на трёх параллельных проектах, каждый с несколькими worktree. В связке с lazygit и yazi / nvim стал чуть продуктивнее обычного, без необходимости гоняться за несколькими экземплярами ghostty / iTerm. Также ощущается естественнее чем tmux.",
|
||||
"northprint": "Попробовал cmux потому что выглядел хорошо, и он хорош",
|
||||
"indykish": "cmux довольно хорош.",
|
||||
"kataring": "Перешёл на cmux.dev",
|
||||
"kataring": "Перешёл на cmux.com",
|
||||
"scottw": "Невероятно полезная находка. Рекомендую всем.",
|
||||
"johnblythe": "скачал на выходных и полюбил. ждал чего-то подобного.",
|
||||
"bchris91": "Это именно то, что я хотел. Потрясающая работа, спасибо!",
|
||||
|
|
|
|||
|
|
@ -571,7 +571,7 @@
|
|||
"afruth": "ชอบเลย ใช้ในวันที่ผ่านมากับสามโปรเจกต์ที่ทำพร้อมกัน แต่ละโปรเจกต์มี worktree หลายอัน การมีสิ่งนี้คู่กับ lazygit และ yazi / nvim ทำให้ผมทำงานได้มากขึ้นกว่าปกติโดยไม่ต้องวิ่งไล่หลายหน้าต่าง ghostty / iTerm รู้สึกเป็นธรรมชาติกว่า tmux ด้วย",
|
||||
"northprint": "ลอง cmux เพราะมันดูดี — มันดีจริง",
|
||||
"indykish": "cmux ดีนะ",
|
||||
"kataring": "ย้ายมาใช้ cmux.dev แล้ว",
|
||||
"kataring": "ย้ายมาใช้ cmux.com แล้ว",
|
||||
"scottw": "นี่เป็นการค้นพบที่มีประโยชน์มาก แนะนำเลย",
|
||||
"johnblythe": "โหลดมาเมื่อสุดสัปดาห์แล้วชอบมาก รอของแบบนี้มานานแล้ว",
|
||||
"bchris91": "นี่คือสิ่งที่ผมต้องการเป๊ะเลย ทำได้ยอดเยี่ยม ขอบคุณ!",
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@
|
|||
"afruth": "Beğendim, son gün içinde her biri birden fazla worktree ile üç paralel projede kullandım. Bunu lazygit ve yazi / nvim ile birlikte kullanmak, birden fazla ghostty / iTerm örneğini kovalamak zorunda kalmadan normalden biraz daha üretken olmamı sağladı. tmux'tan daha doğal hissettiriyor.",
|
||||
"northprint": "cmux'u iyi göründüğü için denedim — gerçekten iyi",
|
||||
"indykish": "cmux oldukça iyi.",
|
||||
"kataring": "cmux.dev'e geçtim",
|
||||
"kataring": "cmux.com'e geçtim",
|
||||
"scottw": "Bu çok faydalı bir keşif oldu. Yeterince tavsiye edemem.",
|
||||
"johnblythe": "hafta sonu indirdim ve bayıldım. böyle bir şey bekliyordum.",
|
||||
"bchris91": "Bu tam olarak istediğim şey. Harika iş, teşekkürler!",
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@
|
|||
"afruth": "很喜欢,过去一天在三个并行项目上用了,每个都有多个 worktree。配合 lazygit 和 yazi/nvim,比以前高效多了,不用在多个 Ghostty/iTerm 实例之间切换。比 tmux 也更自然。",
|
||||
"northprint": "试了 cmux,确实不错",
|
||||
"indykish": "cmux 挺好用的。",
|
||||
"kataring": "换到 cmux.dev 了",
|
||||
"kataring": "换到 cmux.com 了",
|
||||
"scottw": "非常有用的发现。强烈推荐。",
|
||||
"johnblythe": "周末用了,很喜欢。一直在等这样的工具。",
|
||||
"bchris91": "这正是我想要的。做得太好了,谢谢!",
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@
|
|||
"afruth": "很喜歡,過去一天在三個並行專案上用了,每個都有多個 worktree。搭配 lazygit 和 yazi/nvim,比以前高效多了,不用在多個 Ghostty/iTerm 執行個體之間切換。比 tmux 也更自然。",
|
||||
"northprint": "試了 cmux,確實不錯",
|
||||
"indykish": "cmux 蠻好用的。",
|
||||
"kataring": "換到 cmux.dev 了",
|
||||
"kataring": "換到 cmux.com 了",
|
||||
"scottw": "非常有用的發現。強烈推薦。",
|
||||
"johnblythe": "週末用了,很喜歡。一直在等這樣的工具。",
|
||||
"bchris91": "這正是我想要的。做得太好了,謝謝!",
|
||||
|
|
|
|||
17
web/proxy.ts
17
web/proxy.ts
|
|
@ -1,7 +1,22 @@
|
|||
import { type NextRequest, NextResponse } from "next/server";
|
||||
import createMiddleware from "next-intl/middleware";
|
||||
import { routing } from "./i18n/routing";
|
||||
|
||||
export default createMiddleware(routing);
|
||||
const intlMiddleware = createMiddleware(routing);
|
||||
|
||||
export default function middleware(request: NextRequest) {
|
||||
const host = request.headers.get("host") ?? "";
|
||||
|
||||
// 301 redirect cmux.dev (and www.cmux.dev) to cmux.com, preserving path and query
|
||||
if (host === "cmux.dev" || host === "www.cmux.dev") {
|
||||
const url = new URL(request.url);
|
||||
url.host = "cmux.com";
|
||||
url.protocol = "https:";
|
||||
return NextResponse.redirect(url.toString(), 301);
|
||||
}
|
||||
|
||||
return intlMiddleware(request);
|
||||
}
|
||||
|
||||
export const config = {
|
||||
matcher: ["/((?!api|_next|_vercel|.*\\..*).*)"],
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue