쇼핑몰 경로를 제품명으로 할 수 있나요?

쇼핑몰 경로를 제품명으로 할 수 있나요?

QA

쇼핑몰 경로를 제품명으로 할 수 있나요?

답변 1

본문

안녕하세요.

 

영카트에서도 쇼핑몰 경로를 제품명으로 수정 할 수 있나요?

 

영카트는 보통 이렇게 표기되는데, 

https://demo.sir.kr/gnuboard5/shop/item.php?it_id=1446772772

 

아래처럼 

https://www.themacallan.com/en/single-malt-scotch-whisky/double-cask-15-years-old

이렇게 제품명으로 표기되도록 하고 싶습니다. 


고수님들의 답변 부탁드립니다. 
 

이 질문에 댓글 쓰기 :

답변 1

.htaccess 파일에서 mod_rewrite를 활성화하여

shop/item.php?it_id=1446772772와 같은

기존 URL을 single-malt-scotch-whisky/double-cask-15-years-old 형태로 변환하도록 설정.

영카트에서는 lib/shop.uri.lib.php 파일을 수정하여

it_id를 기반으로 제품명을 포함하는 URL을 생성하도록 변경할 수 있으며,

데이터베이스에서 it_id에 해당하는 it_name을 조회하여 URL을 변환하는 로직을 추가.

shop/item.php에서 it_id 대신 it_name을 매칭하여

제품 정보를 가져오도록 $_GET['it_id'] 처리 방식을 수정하는 것이 필요할 듯합니다.

가장 최적의 방안은 데이터베이스 기반 URL 매핑일 것입니다.

*url_alias 테이블 생성 (URL 매핑)
CREATE TABLE url_alias (
    id INT AUTO_INCREMENT PRIMARY KEY,
    it_id VARCHAR(20) NOT NULL UNIQUE,
    slug VARCHAR(255) UNIQUE NOT NULL
);

*제품 추가 시 slug 생성 및 저장
function generate_slug($it_name) {
    $slug = strtolower(trim(preg_replace('/[^A-Za-z0-9-]+/', '-', $it_name), '-'));
    return $slug;
}

$it_name = "Double Cask 15 Years Old";
$slug = generate_slug($it_name);
$sql = "INSERT INTO url_alias (it_id, slug) VALUES ('1446772772', '$slug')";
sql_query($sql);

*제품 상세 페이지에서 slug로 제품 조회
$slug = $_GET['slug'];
$sql = "SELECT it_id FROM url_alias WHERE slug = '".addslashes($slug)."'";
$result = sql_fetch($sql);

if (!$result) {
    die("상품을 찾을 수 없습니다.");
}

$it_id = $result['it_id'];
header("Location: /shop/item.php?it_id=" . $it_id);
exit();

*SEO 친화적인 제품 URL 생성
function get_item_url($it) {
    $sql = "SELECT slug FROM url_alias WHERE it_id = '".$it['it_id']."'";
    $result = sql_fetch($sql);
    return G5_SHOP_URL . '/' . $result['slug'];
}

답변을 작성하시기 전에 로그인 해주세요.
전체 3
© SIRSOFT
현재 페이지 제일 처음으로