Tôi nghĩ bạn đang đi đúng đường.
Tuy nhiên, có một điều tôi sẽ không làm như bạn đã nói là về phần này:
Tôi không nghĩ mình sẽ tạo Quy tắc viết lại Apache cũng như không sử dụng mod_rewrite
.
Khi nhận được một url ngắn, như short.com/MYID
, Id sẽ:
- giải mã phần "MYID" thành số id trong DB
- tìm nạp URL từ cơ sở dữ liệu
- chỉ cần chuyển hướng đến URL đó từ một số mã máy chủ (như PHP, sử dụng
header
chức năng)
Tôi đoán là một chút như thế này:
// fetch $urlFull from DB (corresponding to the MYID received in GET)
header('HTTP/1.x 301 Moved Permanently');
header('Location: ' . $urlFull);
die;
(sửa) If bởi mod_rewrite
ý bạn là " chuyển short.com/MYID thành short.com/id=MYID ", ồ, tất nhiên, trong trường hợp này!
Tôi đang sử dụng một cái gì đó như thế này trên một trong các trang web của tôi, btw:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index.php
RewriteRule ^(.*)$ /index.php?hash=$1 [L]
Hy vọng điều này sẽ giúp :-)