Align brand search SEO with Grace Salmoun
هذا الالتزام موجود في:
@@ -1,5 +1,5 @@
|
||||
import type { Metadata } from "next";
|
||||
import { notFound } from "next/navigation";
|
||||
import { notFound, permanentRedirect } from "next/navigation";
|
||||
import { HomePage } from "@/components/home-page";
|
||||
import { isLanguage, languages, type Language } from "@/data/portfolio";
|
||||
import { getHomeMetadata } from "@/data/seo";
|
||||
@@ -21,5 +21,9 @@ export default function LocalizedHomePage({ params }: { params: { lang: string }
|
||||
notFound();
|
||||
}
|
||||
|
||||
if (params.lang === "en") {
|
||||
permanentRedirect("/");
|
||||
}
|
||||
|
||||
return <HomePage language={params.lang as Language} />;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { Metadata } from "next";
|
||||
import { notFound } from "next/navigation";
|
||||
import { notFound, permanentRedirect } from "next/navigation";
|
||||
import { ResumePageContent } from "@/components/resume-page-content";
|
||||
import { isLanguage, languages, type Language } from "@/data/portfolio";
|
||||
import { getResumeMetadata } from "@/data/seo";
|
||||
@@ -21,5 +21,9 @@ export default function LocalizedResumePage({ params }: { params: { lang: string
|
||||
notFound();
|
||||
}
|
||||
|
||||
if (params.lang === "en") {
|
||||
permanentRedirect("/resume");
|
||||
}
|
||||
|
||||
return <ResumePageContent language={params.lang as Language} />;
|
||||
}
|
||||
|
||||
11
app/page.tsx
11
app/page.tsx
@@ -1,5 +1,12 @@
|
||||
import { redirect } from "next/navigation";
|
||||
import type { Metadata } from "next";
|
||||
import { HomePage } from "@/components/home-page";
|
||||
import type { Language } from "@/data/portfolio";
|
||||
import { getHomeMetadata } from "@/data/seo";
|
||||
|
||||
const defaultLanguage: Language = "en";
|
||||
|
||||
export const metadata: Metadata = getHomeMetadata(defaultLanguage);
|
||||
|
||||
export default function RootPage() {
|
||||
redirect("/en");
|
||||
return <HomePage language={defaultLanguage} />;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
import { redirect } from "next/navigation";
|
||||
import type { Metadata } from "next";
|
||||
import { ResumePageContent } from "@/components/resume-page-content";
|
||||
import type { Language } from "@/data/portfolio";
|
||||
import { getResumeMetadata } from "@/data/seo";
|
||||
|
||||
const defaultLanguage: Language = "en";
|
||||
|
||||
export const metadata: Metadata = getResumeMetadata(defaultLanguage);
|
||||
|
||||
export default function RootResumePage() {
|
||||
redirect("/en/resume");
|
||||
return <ResumePageContent language={defaultLanguage} />;
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ export default function sitemap(): MetadataRoute.Sitemap {
|
||||
|
||||
return [
|
||||
{
|
||||
url: absoluteUrl("/en"),
|
||||
url: absoluteUrl("/"),
|
||||
lastModified,
|
||||
changeFrequency: "monthly",
|
||||
priority: 1,
|
||||
@@ -18,7 +18,7 @@ export default function sitemap(): MetadataRoute.Sitemap {
|
||||
priority: 1,
|
||||
},
|
||||
{
|
||||
url: absoluteUrl("/en/resume"),
|
||||
url: absoluteUrl("/resume"),
|
||||
lastModified,
|
||||
changeFrequency: "monthly",
|
||||
priority: 0.8,
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم