Hướng dẫn tạo đường dẫn thân thiện trong URL Cs-Cart

Các phiên bản Cs-cart mặc định, khi bạn tạo tiêu đề sản phẩm hoặc danh mục bằng Tiếng Việt, url sẽ được tạo tự động nhưng nó không thân thiện với SEO.

Ví dụ: Test sản phẩm có dấu ==> test-sn-phm-co-du ==> điều này không thân thiện với SEO.
Cái chúng ta muốn phải là test-san-pham-co-dau.
Làm ngay thôi!

Trước tiên, tạo một file vi.php với nội dung sau:

$vi = array(
	'á' => 'a', 'à' => 'a', 'ạ' => 'a', 'ả' => 'a', 'ã' => 'a', 'ă' => 'a', 'ắ' => 'a', 'ằ' => 'a', 'ặ' => 'a',
	'ẳ' => 'a', 'ẵ' => 'a', 'â' => 'a', 'ấ' => 'a', 'ầ' => 'a', 'ậ' => 'a', 'ẩ' => 'a', 'ẫ' => 'a', 'Á' => 'a',
	'À' => 'a', 'Ạ' => 'a', 'Ả' => 'a', 'Ã' => 'a', 'Ă' => 'a', 'Ắ' => 'a', 'Ằ' => 'a', 'Ặ' => 'a', 'Ẳ' => 'a',
	'Ẵ' => 'a', 'Â' => 'a', 'Ấ' => 'a', 'Ầ' => 'a', 'Ậ' => 'a', 'Ẩ' => 'a', 'Ẫ' => 'a',
	'đ' => 'd', 'Đ' => 'd', 
	'è' => 'e', 'é' => 'e', 'ẻ' => 'e', 'ẽ' => 'e', 'ẹ' => 'e', 
	'ê' => 'e', 'ề' => 'e', 'ế' => 'e', 'ể' => 'e', 'ễ' => 'e', 'ệ' => 'e', 
	'È' => 'e', 'É' => 'e', 'Ẻ' => 'e', 'Ẽ' => 'e', 'Ẹ' => 'e', 
	'Ê' => 'e', 'Ề' => 'e', 'Ế' => 'e', 'Ể' => 'e', 'Ễ' => 'e', 'Ệ' => 'e', 
	'ì' => 'i', 'í' => 'i', 'ỉ' => 'i', 'ĩ' => 'i', 'ị' => 'i', 
	'Ì' => 'i', 'Í' => 'i', 'Ỉ' => 'i', 'Ĩ' => 'i', 'Ị' => 'i', 
	'ò' => 'o', 'ó' => 'o', 'ỏ' => 'o', 'õ' => 'o', 'ọ' => 'o', 
	'ô' => 'o', 'ồ' => 'o', 'ố' => 'o', 'ổ' => 'o', 'ỗ' => 'o', 'ộ' => 'o', 
	'ơ' => 'o', 'ờ' => 'o', 'ớ' => 'o', 'ở' => 'o', 'ỡ' => 'o', 'ợ' => 'o', 
	'Ò' => 'o', 'Ó' => 'o', 'Ỏ' => 'o', 'Õ' => 'o', 'Ọ' => 'o', 
	'Ô' => 'o', 'Ồ' => 'o', 'Ố' => 'o', 'Ổ' => 'o', 'Ỗ' => 'o', 'Ộ' => 'o', 
	'Ơ' => 'o', 'Ờ' => 'o', 'Ớ' => 'o', 'Ở' => 'o', 'Ỡ' => 'o', 'Ợ' => 'o', 
	'ù' => 'u', 'ú' => 'u', 'ủ' => 'u', 'ũ' => 'u', 'ụ' => 'u', 
	'ư' => 'u', 'ừ' => 'u', 'ứ' => 'u', 'ử' => 'u', 'ữ' => 'u', 'ự' => 'u', 
	'Ù' => 'u', 'Ú' => 'u', 'Ủ' => 'u', 'Ũ' => 'u', 'Ụ' => 'u', 
	'Ư' => 'u', 'Ừ' => 'u', 'Ứ' => 'u', 'Ử' => 'u', 'Ữ' => 'u', 'Ự' => 'u', 
	'ỳ' => 'y', 'ý' => 'y', 'ỷ' => 'y', 'ỹ' => 'y', 'ỵ' => 'y', 
	'Y' => 'y', 'Ỳ' => 'y', 'Ý' => 'y', 'Ỷ' => 'y', 'Ỹ' => 'y', 'Ỵ' => 'y',
);

return array_merge($schema, $vi);

Lưu ý: file vi.php phải được lưu ở định dạng UTF8, nên tạo nó với Notepad++, Sublime… hoặc phần mềm bạn ưa thích hỗ trợ tốt UTF8. Tạo trước nó trên máy tính.

Truy cập thư mục /htdocs/app/schemas/literal_converter/
Tải file vi.php vừa tạo lên thư mục này.
Mở file schema.php và tìm đoạn:

$files = array(
    'literal_converter/general.php',
...

Thêm 'literal_converter/vi.php', vào bên dưới, trông như:

$files = array(
    'literal_converter/general.php',
    'literal_converter/vi.php',
 ...

Lưu lại.
Xong!

Cái này có cần lience không bạn datvnn !

1 Likes

Ý bạn là giấy phép cho đoạn code trên? Ko cần nhé.

Còn đối với CS-CART thì cần giấy phép để dùng full chức năng hoặc dùng thử 30 ngày. Nếu có điều kiện thì nên mua giấy phép. Còn nếu điều kiện chưa có thì bạn cũng có thể sử dụng bản nulled nhé.

Hello datvnn
Hướng dẫn này là tuyệt vời, nhưng không biết mỗi lần upgrade phiên bản mới thì file vi.php hoặc đoạn code thêm vào schema.php có bị mất không? Hay mỗi lần upgrade mình phải tạo lại cái mới?

Mình thì thêm trực tiếp đoạn code vào general.php như hướng dẫn này Url Of Cs-Cart Not Good For Vietnamese Site - SEO - CS-Cart Community Forums
Và mỗi lần upgrade điều phải thêm lại đoạn code

Không biết có thể sử dụng my_changes cho cái này được không?

Cảm ơn datvnn

Chưa thử cái này. Nhưng để tránh ghi đè khi cập nhật có thể thử cách này:

  • Vẫn để tệp vi.php riêng
  • Thêm tệp mới schema_[PHIÊN BẢN CS-CART].php
    • Ví dụ: schema_ultimate.php
  • Sao chép nội dung từ tệp gốc schema.php qua tệp mới schema_ultimate.php
    • Tệp schema.php khôi phục về nội dung ban đầu nếu đã cập nhật
    • Tệp schema_ultimate.php sẽ thêm đường dẫn 'literal_converter/vi.php',

Sau này khi cập nhật sẽ ko bị ghi đè tệp vi.phpschema_ultimate.php

Túm lại, khi làm theo hướng dẫn trong bài đầu tiên, thay vì chỉnh sửa trực tiếp tệp schema.php, ta tạo tệp schema_[phiên bản cs-cart].php và thực hiện các thay đổi cần thiết ở đây.