SEO 친화적인 URL

minah moon·2023년 10월 5일

PHP

목록 보기
58/58
post-thumbnail

SEO 친화적인 URL

URL에서 페이지의 내용을 설명하는 단어를 사용하면 검색 엔진 최적화(SEO)에 도움이 되므로, 해당 페이지가 검색 엔진에서 더 눈에 띄게 된다. 또한 URL을 더 쉽게 읽을 수 있다.

대다수의 웹 사이트는 파일 경로보다 더 설명적이고 SEO 친화적인 URL을 사용한다. 방문자가 이러한 설명적인 URL을 요청하면, 사이트는 URL을 파일 경로로 변환하고 표시할 데이터를 해당 파일에 알려준다. 이것은 URL rewriting이라는 기술이다.

SEO 친화적인 URL은 슬래시 문자로 각 부분이 구분된 최대 세 부분으로 구성된다.

  1. 파일 경로와 동일하게 시작하지만 .php 파일 확장자는 제거된다. 확장자가 제거된 기존의 파일 이름은 페이지의 목적을 설명하기 때문에 SEO 친화적인 URL에서 역할을 한다.

  2. 다음으로 이전 URL이 데이터베이스에서 가져올 데이터의 아이디를 포함하는 쿼리 문자열을 가지고 있다면, 슬래시 다음으로 데이터베이스에서 가져올 데이터의 아이디가 온다.

  3. 기사 페이지와 카테고리 페이지는 검색 엔진이 해당 페이지를 인덱싱하는 데 도움이 되도록 SEO 친화적인 이름을 추가한다.

새로운 URL에는 더 이상 파일 경로가 포함되지 않으므로, PHP 페이지에 대한 모든 요청은 index.php라는 하나의 파일로 전송된다. 이것은 SEO 친화적인 URL을 받아서, 각 슬래시로 분할한 다음, 각 부분을 배열의 별도의 요소로 저장한다. 공개 페이지에 대한 요청에 대해 배열은 다음을 저장한다.

  1. 요청을 처리해야 하는 파일
  1. 데이터베이스에 있는 데이터의 아이디(사용해야 할 경우)

  2. SEO 친화적인 용어(추가된 경우)

다음으로 index.php는 배열의 첫 번째 요소에 있는 값을 가져와서 .php 파일 확장자를 추가한다. 이렇게 하면 이전 URL에서 사용했던 파일명이 만들어진다.

그러면 index.php 페이지는 요청을 처리하기 위한 해당 파일을 포함한다. 다음의 표는 다음에 대해 보여준다

  • 경로(호스트 다음의 URL 부분)

  • 경로가 분할될 때 생성된 배열

  • 각 부분이 무엇에 사용되는지에 대한 설명

경로 , 부분 , 설명

  • register , $parts[0] = 'register'; , 이것은 하나의 요소만 있는 배열을 생성한다. index.php 파일에는 새로운 사용자를 등록하기 위한 register.php 페이지가 포함되어야 한다는 것을 나타낸다.
  • category/2/digital , $parts[0] = 'category'; $parts[1] = '2'; $parts[2] = 'digital'; , 이것은 다음의 세 가지 요소를 가진 배열을 싱성한다. category.php 파일이 포함되어야 한다. 카테고리의 아이디는 2다. 이름은 digital이다.

검색 엔진이 어드민 페이지를 인덱싱하면 안 되므로, 해당 URL이 SEO 친화적인 용어로 끝나지 않도록 해야 한다. 어드민 페이지의 URL이 모든 슬래시마다 분리되어 배열로 바뀌면, 배열의 각 요소는 다음과 같다.

  1. 어드민 페이지임을 지정한다.

  2. 해당 요청을 처리해야 하는 파일을 가리킨다.

  3. 페이지가 작업할 데이터의 아이디를 보유한다(필요한 경우).

index.php가 배열을 생성하면 배열의 첫 번째 요소가 admin인지 확인한다. 만약에 그러하다면, 해당 요청은 어드민 페이지에 대한 것이며 다음과 같은 방식으로 해당 파일의 경로를 생성한다.

  • 배열의 첫 번째 요소의 값

  • 슬래시

  • 배열의 두 번째 요소의 값

  • .php 파일 확장자

경로 , 부분 , 설명

  • admin/article/15 , $parts[0] = 'admin'; $parts[1] = 'article'; $parts[2] = '15'; , 이 배열은 다음을 지정한다. 인클루드할 PHP는 admin/article.php다. 작업할 기사의 아이디는 15다.

SEO 친화적인 URL 구현하기

새로운 기능을 추가할 때는 저장할 데이터가 무엇인지, 코드로 기능을 구현하는 방법, 그리고 인터페이스를 업데이트하는 방법 등을 고려해야 한다. 다음으로, 몇몇 문제는 SEO 친화적인 URL 추가로 해결된다.

저장할 데이터와 저장하는 방법

기사 또는 카테고리가 생성되거나 업데이트될 때, 기사나 카테고리에 대한 SEO 친화적인 이름이 생성되어 데이터베이스에 저장된다.

기사 또는 카테고리에 대한 SEO 친화적인 이름들은 article 테이블의 seo_title 열과 category 테이블의 seo_name 열에 각각 저장된다.

코드로 새로운 기능을 구현하는 방법

SEO 친화적인 URL은 PHP 파일에 대한 경로를 사용하지 않기 때문에, 도큐먼트 루트 폴더의 시로운 .htaccess 파일의 규칙은 PHP 페이지에 대한 모든 요청을 index.php로 보내도록 웹 서버에 알려준다.

그런 다음 index.php는 요청된 URL을 처리하고 다음을 수행한다.

  • 데이터베이스에서 수집해야 하는 데이터의 아이디를 가져와서 변수에 저장한다.

  • 요청을 처리하기 위해 적합한 PHP 파일을 인클루드한다.

기사 또는 카테고리가 추가되거나 수정될 때

  • create_seo_name()라는 새로운 함수는 SEO 친화적인 이름을 생성한다.

  • Article 및 Category 클래스의 기존 메서드는 이러한 새로운 이름을 데이터베이스에 저장한다.

기사 데이터와 카테고리 데이터를 데이터베이스에서 수집할 때, SEO 친화적인 이름이 반환되며 새로운 링크를 생성하기 위한 Twig 템플릿에 전달된다.

인터페이스 업데이트하기

Twig 템플릿에서 모든 링크를 업데이트해야 하며, SEO 친화적인 이름이 있다면 그 이름이 추가된다. 다음은 기사 페이지에 대한 링크다. 기사 아이디를 사용한 다음에 SEO 친화적인 제목을 사용한다.

<a href="article/{{ article.id }}/{{ article.seo_title }}">





출처 - 존 두켓, <백엔드 프로그래밍을 위한 PHP & MySQL>, Jpub, 2022

0개의 댓글