Site icon Trickbd.com

নিজের Link Shortner ওয়েবসাইট বানান – ফ্রি PHP স্ক্রিপ্ট ও টেলিগ্রাম Link Shortner বট তৈরির সম্পূর্ণ টিউটোরিয়াল – Part 1

ইন্টারনেটে আজকাল লিংক শেয়ার করা একেবারে নরমাল ব্যাপার। কিন্তু লম্বা, জটিল আর এলোমেলো URL শেয়ার করলে দেখতে যেমন খারাপ লাগে, মনে রাখাও তেমন ঝামেলার। তার ওপর সোশ্যাল মিডিয়াতে ছোট ও পরিস্কার লিংক অনেক বেশি কার্যকরী। তাই আপনাদের জন্য নিয়ে এলাম একদম হালকা, ডাটাবেসবিহীন PHP লিংক শর্টনার স্ক্রিপ্ট। এখানে আপনি নিজের সাইট থেকেই লিংক ছোট করতে পারবেন, ট্র্যাক করতে পারবেন কতবার মানুষ সেই লিংকে ক্লিক করেছে, আর সব কিছু থাকবে আপনার নিয়ন্ত্রণে। আজকের পর্বে সাইট বানাবেন কিভাবে তা দেখাবো, পরের পর্বে কিভাবে বট বানাবেন সেইটা দেখাবো।

কোনো থার্ড-পার্টি সার্ভিসের উপর নির্ভর করতে হবে না—সব ডেটা আপনার সার্ভারে সেভ হবে, নিরাপদে, এবং ব্যাকআপ নিতেও এক মিনিটের বেশি লাগবে না।


লিংক শর্টনার—আসলে ব্যাপারটা কী

ধরুন আপনার একটা লম্বা লিংক আছে—ট্র্যাকিং প্যারামিটার, ক্যাটাগরি, তারিখ, যা-তা জুড়ে লিংকটা দেখতে পুরাই হাবিজাবি। ওই লিংকটা আপনি পোস্টার, ফেসবুক পোস্ট, কিংবা এসএমএস-এ দিতে চাইলে বেশ বিরক্তিকর দেখায়। এখানেই “লিংক শর্ট” কাজ দেয়। বড় লিংকটাকে ছোট একটা কোডে নামিয়ে আনা—যেমন:

https://banglatrick.com/blog/article?id=123&ref=summer_campaign
→ https://yoursite.com/abcd

এই ছোট লিংকেই মানুষ ক্লিক করলেই আসল লিংকে পাঠিয়ে দেবে রিডাইরেক্ট করে।


কেন লিংক শর্ট করবেন—ব্যবহারিক ৭টা কারণ

  1. শেয়ার করা সহজ – ফেসবুক/মেসেঞ্জার/এসএমএস/টুইট সব জায়গায় ছোট লিংকই চোখে লাগে কম, ক্লিক হয় বেশি।
  2. দেখতে পরিষ্কার – পোস্টার, ব্যানার, স্লাইড, ভিডিওর ডিসক্রিপশনে ছোট লিংক পেশাদারি লাগে। ব্র্যান্ডেড ছোট কোড হলে তো কথাই নেই।
  3. ট্র্যাক করা সহজ – কত ক্লিক পড়ল, কোন দিনে কতটা—এই বেসিক মেট্রিক্স সিদ্ধান্ত নিতে ভালো কাজে লাগে।
  4. কাস্টম কোড – /offer, /app, /join, /docs — এমন কোড দিলে মানুষ মানে বুঝে নেয়। মনে রাখাও সহজ।
  5. প্ল্যাটফর্ম-নিরপেক্ষ – ফেসবুক/ইমেইল/ব্যানার—একই শর্ট লিংক ঘুরে ঘুরে ব্যবহার করতে পারবেন।
  6. ক্যাম্পেইন A/B টেস্টিং – একই কন্টেন্টের দুইটা ল্যান্ডিং পেজ হলে আলাদা আলাদা শর্ট লিংক দিয়ে তুলনা করতে পারবেন।
  7. অফলাইন ইউজ-কেস – প্রিন্ট মিডিয়া, ফ্লেক্সি/পোস্টার—QR কোড জুড়ে দেবেন, সাথে টেক্সট শর্ট লিংক। মানুষ টাইপ করলেও পারবে।

এই স্ক্রিপ্টটা বিশেষ, কারণ—

  • ডাটাবেস লাগে না – প্রতিটা লিংক আলাদা JSON ফাইলে /link/ ফোল্ডারে থাকে। শেয়ার্ড হোস্টিং, cPanel—সব জায়গাতেই হালকা-পাতলা চলে।
  • প্রিটি URL – https://your.site/CODE—ক্লিন, স্মার্ট। .htaccess রিরাইট রুল দিয়েই কাজ হয়; ?c=CODE লাগবে না।
  • পাবলিক পেজ আছে – index.php থেকে যে কেউ লিংক ছোট করতে পারবে। কাস্টম কোড চাইলে সেটিও নিতে পারবে।
  • শক্তিশালী অ্যাডমিন – এক পেজেই সব—লিংকের তালিকা, সার্চ, URL এডিট, কোড রিনেম (ফাইলও রিনেম হয়), ডিলিট, পাসওয়ার্ড চেঞ্জ।
  • দৈনিক স্ট্যাটস – মোট ক্লিক (Total), আজ (Today), শেষ ৭ দিন (7d), ৩০ দিন (30d)—সব দেখাবে। তারিখভিত্তিক CSV এক্সপোর্টও আছে।
  • নিরাপত্তা – CSRF টোকেন, কোডের জন্য কড়া রেগেক্স, http/https স্কিম ভ্যালিডেশন, রিজার্ভড স্লাগ ব্লক, /link ফোল্ডার ডিরেক্ট অ্যাক্সেস ডিনাই। admin.pass-এ প্লেইন টেক্সট না, bcrypt হ্যাশ থাকে; চাইলে ওয়েব রুটের বাইরে রাখা যায়।
  • ক্লাউডফ্লেয়ার-ফ্রেন্ডলি – প্রক্সির পেছনে থাকলে X-Forwarded-Proto পড়ে HTTPS ঠিকভাবে ধরতে পারে।
  • পারফরম্যান্স – দৈনিক স্ট্যাটস খুব পুরোনো হলে অটো-ট্রিম—ফাইল বড় হয়ে সার্ভার স্লো করে না।
  • ব্যাকআপ সহজ – আপনার ডেটা মূলত /link/—এই ফোল্ডারটাই জিপ করলেই ব্যাকআপ হয়ে গেল। মাইগ্রেশনেও সুবিধা।

ভিতরে কীভাবে কাজ করে—

  • সেভ – আপনি একটা লং URL আর কোড দিলেন। স্ক্রিপ্ট /link/CODE.json এই নামে একটি ফাইল বানায়। এর ভিতরে URL, তৈরি সময়, total hits, daily স্ট্যাটস—এগুলো থাকে।
  • রিডাইরেক্ট – ভিজিটর yoursite.com/CODE খুললে, .htaccess ভেতরে index.php?c=CODE-এ পাঠায়। স্ক্রিপ্ট JSON পড়ল, তারপর Location: <long-url> দিয়ে 302 রিডাইরেক্ট করল। সাথে hits আর daily[YYYY-MM-DD]এক বাড়ল।
  • অ্যাডমিন – admin.php পুরো /link ফোল্ডার স্ক্যান করে সব JSON পড়ল—টেবিল বানাল। আপনি ফিল্টার করলেন, এডিট করলেন, কোড রিনেম করলেন—ফাইল লেভেলে ওই কাজটাই হল।

নিরাপত্তা—কোনটা কেন করা হয়েছে

  • কোড রুলস –A–Z, a–z, 0–9, _, -, —এগুলোই চলবে, ১–৩২ ক্যারেক্টার। admin, index, link টাইপ রিজার্ভড স্লাগ ব্লক করা হয়েছে।
  • CSRF টোকেন – প্রতিটা ফর্মে সেশন-ভিত্তিক টোকেন থাকে, ভুল টোকেন হলে সাবমিট রিজেক্ট হয়।
  • URL ভ্যালিডেশন – শুধু http/https স্কিম—অন্য কিছু এলে রিজেক্ট। এতে স্ক্রিপ্ট/ডেটা ইউআরআই নিয়ে ঝুঁকি কমে।
  • স্টোরেজ প্রোটেকশন –/link/.htaccess ডিরেক্ট লিস্টিং বন্ধ করে, JSON ফাইল ডাউনলোডও ব্লক করে।
  • পাসওয়ার্ড হ্যাশ –admin.pass-এ bcrypt হ্যাশ থাকে। সবচেয়ে ভালো—এই ফাইলটা ওয়েব রুটের বাইরে রাখা; না রাখলে রুট .htaccess দিয়ে ডিনাই।

স্ট্যাটস—আপনি কী দেখবেন, কীভাবে গণনা হয়

  • Total: এই কোডে মোট কতবার ক্লিক পড়েছে।
  • Today: আজকের তারিখের কাউন্টার।
  • 7d/30d: আজসহ শেষ ৭/৩০ দিনের যোগফল।
  • CSV: date,clicks ফরম্যাটে নামিয়ে নিন; এক্সেল/শিটসে গ্রাফ করলেই পুরো চিত্র স্পষ্ট।

নোট: স্ট্যাটস ১০০% অ্যান্টি-বট নয়—একই উৎস থেকে বহুবারও গণনা হতে পারে। পরে বট-ফিল্টার, রেট-লিমিট যোগ করা হলে আরও পরিশুদ্ধ হবে।


ছোট্ট FAQ—কিছু প্রশ্ন এবং তার উত্তর

কোড কি কেস-সেনসিটিভ?
হ্যাঁ; A আর a আলাদা ধরা হয়।

কোডে কী কী চলবে, কত লম্বা?
A–Z, a–z, 0–9, _, -, —১ থেকে ৩২ ক্যারেক্টার।

ডিলিট করলে কী হয়?
JSON ফাইল মুছে যায়—শর্ট লিংক আর থাকেনা; 404 হবে।

রিনেম করলে পুরোনো কোড কাজ করবে?
না; পুরোনো কোডের ফাইল মুছে নতুন নামে সেভ হয়। পুরোনোটা ভাঙবে, নতুনটায় কাজ করবে।

CSV-এর টাইমজোন?
সার্ভারের টাইমজোন অনুযায়ী গণনা হয়। চাইলে লোকাল টাইমজোন কনফিগ যোগ করা যাবে।

Cloudflare-এর পেছনে কাজ করবে?
হ্যাঁ—X-Forwarded-Proto হ্যান্ডল করলে HTTPS ঠিকমতো ধরা পড়ে।


PHP File Download:

Click Here fore Download


কিভাবে সেটআপ করবেন?

১) ডোমেইন/সাবডোমেইন:

আপনি কি মেইন ডোমেইনে চালাবেন (yoursite.com), নাকি সাবডোমেইনে (s.yoursite.com) বা সাবফোল্ডারে (your.site/short/)? যেটাই হোক, cPanel-এ Domains বা Subdomains থেকে ডকুমেন্ট রুটটা জেনে নিন। আমরা ধরে নিচ্ছি public_html-এই রাখবেন।

২) SSL:

SSL থাকলে https:// হবে, আর সেটাই ভালো। cPanel → SSL/TLS Status → AutoSSL চালু আছে কি না দেখে নিন। সবুজ তালা না থাকলে এখনই ইস্যু করে নিন।

৩) PHP ভার্সন:

cPanel → Select PHP Version বা MultiPHP Manager
PHP 7.4+ হলেই চলবে; 8.0/8.1/8.2 হলে আরও ভালো। প্রয়োজন হলে MultiPHP INI Editor থেকে allow_url_fopen ইত্যাদি ডিফল্ট থাকলেই যথেষ্ট—কিছু বিশেষ লাগবে না।

৪) File Upload:

File Manager খুলুন → আপনার রুট (ধরা যাক public_html)। আমার দেওয়া ZIP ফাইলটা আপলোড করুন। আপলোড হলে ZIP-এ রাইট-ক্লিক → Extract

৫) Admin Setup:

ব্রাউজারে যান: https://yoursite.com/admin.php
প্রথমবার ঢুকলেই Set Admin Password ফর্ম আসবে। Mail, পাসওয়ার্ড দিন → Save → তারপর Login
এখন থেকে এই ড্যাশবোর্ডেই সব লিংক, স্ট্যাটস, এডিট/ডিলিট সব করবেন।

admin.php-তে ঢুকলেই সব লিংকের টেবিল দেখবেন। প্রতিটা রো একটু খেয়াল করুন:

  • Code + ক্লিকেবল Short URL

  • URL—যেটা চাইলে এখানেই বদলাতে পারেন

  • Total—মোট ক্লিক

  • Today—আজকের ক্লিক

  • 7d / 30d—শেষ ৭/৩০ দিনের যোগফল

  • Created / Last Hit—কবে বানিয়েছেন, শেষ কবে ক্লিক পড়েছে।

  • Export CSV—এক ক্লিকে নামিয়ে নিতে পারবেন date,clicks ফাইলে

৬) প্রথম শর্ট লিংক:

সাইটের হোম পেইজে যান: https://yoursite.com/

দীর্ঘ লিংকটা পেস্ট দিন। চাইলে কাস্টম কোড (যেমন offer2025) লিখতে পারেন, না চাইলে সিস্টেম নিজেই ইউনিক কোড বানাবে। Shorten চাপুন।ফলাফল একটি Short URL দেখবেন—এই রকম: https://yoursite.com/CODE

এই লিংকে ক্লিক করলে সাথে সাথে রিডাইরেক্ট হবে।

নিজের লিংক শর্টনার সাইট বানানো আসলে ততটা কঠিন নয়, যদি আপনার কাছে সঠিক টুলস আর পরিষ্কার একটি পরিকল্পনা থাকে। এই PHP স্ক্রিপ্টটি দিয়ে আপনি একদম শূন্য থেকে নিজের সার্ভারে একটা কার্যকরী ও নিরাপদ লিংক শর্টনার চালু করতে পারবেন। ডাটাবেস ছাড়া, কম খরচে, আর সব ডেটা আপনার নিয়ন্ত্রণে—ব্যাকআপও সহজ, মেইনটেনেন্সও ঝামেলাহীন।

এখন আপনার হাতে এমন একটা সিস্টেম আছে যেটা দিয়ে ব্র্যান্ডেড ছোট লিংক তৈরি করা, ক্লিক ট্র্যাক করা আর কাস্টম কোড দেওয়া সবকিছুই সম্ভব। চাইলে বন্ধুদের সাথে শেয়ার করুন, বা নিজের প্রজেক্টে ব্যবহার করুন।


নোট: পরের পোস্টে আমি দেখাবো, কীভাবে খুব সহজে একটি টেলিগ্রাম বট বানিয়ে এই লিংক শর্টনার সিস্টেমের সাথে যুক্ত করা যায়। তখন আপনি সরাসরি টেলিগ্রাম থেকেই কমান্ড দিয়ে লিংক ছোট করতে পারবেন—ওয়েবসাইটে ঢোকারও দরকার হবে না। টিউটোরিয়ালটি মিস করতে না চাইলে আমাদের সাইট BanglaTrick.com এর সাথে থাকুন।

Exit mobile version