File size: 1,094 Bytes
c10f8f8
 
 
 
0cce1b7
 
 
 
 
 
 
 
 
 
 
c10f8f8
 
8bce833
 
0698bd6
8bce833
 
 
6cca3b1
8bce833
 
c10f8f8
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";

export function middleware(request: NextRequest) {
  const host = request.headers.get("host") || "";

  // Check if we're not on hf.co or huggingface.co
  const isHfCo = host === "hf.co" || host.startsWith("hf.co:");
  const isHuggingFaceCo = host === "huggingface.co" || host.startsWith("huggingface.co:");

  if (!isHfCo && !isHuggingFaceCo) {
    // Server-side redirect to the correct URL
    return NextResponse.redirect("https://huggingface.co/deepsite", 301);
  }

  const headers = new Headers(request.headers);
  headers.set("x-current-host", request.nextUrl.host);
  
  const response = NextResponse.next({ headers });

  if (request.nextUrl.pathname.startsWith('/_next/static')) {
    response.headers.set('Cache-Control', 'public, max-age=31536000, immutable');
  }
  response.headers.set('X-Canonical-URL', `https://huggingface.co/deepsite${request.nextUrl.pathname}`);
  
  return response;
}

export const config = {
  matcher: ["/((?!api|_next/static|_next/image|favicon.ico).*)"],
};