import type { NextRequest } from 'next/server'
// Block Austria, prefer Germany
const BLOCKED_COUNTRY = 'AT'
export function middleware(req: NextRequest) {
const country = req.geo.country || 'US'
if (country === BLOCKED_COUNTRY) {
return new Response('Blocked for legal reasons', { status: 451 })
}
return new Response(`Greetings from ${country}, where you are not blocked.`)
}
You can choose from one of the following two methods to use this repository:
Deploy the example using Vercel:
Execute create-next-app
with npm or Yarn to bootstrap the example:
npx create-next-app --example https://github.com/vercel/examples/tree/main/edge-functions/geolocation-country-block geolocation-country-block
# or
yarn create next-app --example https://github.com/vercel/examples/tree/main/edge-functions/geolocation-country-block geolocation-country-block
Next, run Next.js in development mode:
npm install
npm run dev
# or
yarn
yarn dev
Deploy it to the cloud with Vercel (Documentation).