DlePlugin » بلاگ » آموزشی » آدرس‌های سئوپسند در دیتالایف ۲۰: پیکربندی کامل و بدون محتوای تکراری
آموزشی

آدرس‌های سئوپسند در دیتالایف ۲۰: پیکربندی کامل و بدون محتوای تکراری

ساختار آدرس از آن دسته تصمیم‌هایی است که یک بار گرفته می‌شود و سال‌ها با سایت می‌ماند. عوض کردنش بعد از ایندکس شدن، یعنی ریدایرکت، افت موقت رتبه و مدتی سردرگمی خزنده‌ها. بنابراین ارزشش را دارد که همان اول درست انجام شود.

مرحله‌ی صفر: mod_rewrite

پیش از هر تنظیمی مطمئن شوید بازنویسی آدرس روی سرور فعال است. فایل .htaccess در ریشه‌ی سایت باید این بلوک را داشته باشد:

DirectoryIndex index.php

<IfModule mod_rewrite.c>
	RewriteEngine On

	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule . index.php [L]
</IfModule>

روی nginx معادلش یک try_files است:

location / {
	try_files $uri $uri/ /index.php?$args;
}

اگر این مرحله انجام نشود، فعال کردن آدرس سئوپسند در پنل فقط باعث می‌شود کل سایت ۴۰۴ بدهد.

فعال‌سازی در پنل

پنل مدیریت ← تنظیمات اسکریپت ← تنظیمات آدرس‌ها. گزینه‌ی «استفاده از آدرس‌های سئوپسند» را روشن کنید. این گزینه در فایل پیکربندی معادل allow_alt_url است.

در همان بخش، حالت آدرس مطلب را انتخاب می‌کنید. سه الگوی رایج:

الگونمونهمناسب برای
دسته + شناسه + نام/blog/blog-tutorials/23-post-name.htmlسایت‌های محتوایی با دسته‌بندی معنادار
شناسه + نام/23-post-name.htmlوقتی مطلب ممکن است بین دسته‌ها جابه‌جا شود
تاریخ + نام/2026/08/post-name.htmlسایت‌های خبری با آرشیو زمانی

توصیه‌ی عملی: اگر مطالب شما احتمال دارد بعداً دسته‌بندی‌شان عوض شود، الگوی بدون دسته را انتخاب کنید. هر بار جابه‌جایی دسته در الگوی اول یعنی تغییر آدرس و نیاز به ریدایرکت.

rules.json — جایی که ساختار واقعاً تعریف می‌شود

در دیتالایف ۲۰ قواعد مسیریابی از هسته جدا شده و در engine/data/rules.json نگهداری می‌شود. هر قاعده سه بخش دارد:

"showfull": [
	"/{category}/{newsid}-{news_name}.html",
	"/index.php?newsid={newsid}",
	"/{category:[^.]+}/{newsid:\d+}-{news_name:.*}.html"
]
  1. الگوی ساخت — دیتالایف با این الگو لینک‌های داخل سایت را می‌سازد.
  2. آدرس داخلی — درخواست در نهایت به این شکل ترجمه می‌شود.
  3. الگوی تطبیق — عبارت باقاعده‌ای که آدرس ورودی با آن سنجیده می‌شود.

اگر خواستید ساختار دلخواه بسازید، هر سه بخش باید هم‌خوان بمانند. مثلاً برای حذف پسوند .html از آدرس مطالب:

"showfull": [
	"/{category}/{newsid}-{news_name}",
	"/index.php?newsid={newsid}",
	"/{category:[^.]+}/{newsid:\d+}-{news_name:[^/]*}"
]

سه هشدار جدی پیش از دست زدن به این فایل:

  • پشتیبان بگیرید. یک ویرگول جا افتاده کل سایت را از کار می‌اندازد، چون JSON نامعتبر قابل تجزیه نیست.
  • الگوی تطبیق را آن‌قدر باز نگذارید که با مسیرهای دیگر تداخل کند. {news_name:.*} بدون پسوند، آدرس دسته‌ها را هم می‌بلعد.
  • بعد از ویرایش، کش سیستم را پاک کنید تا قواعد دوباره خوانده شوند.

تداخل نام دسته با پوشه‌های واقعی

این مورد را کمتر جایی می‌نویسند و دقیقاً همان چیزی است که ساعت‌ها وقت می‌گیرد: اگر نام مستعار یک دسته با نام یک پوشه‌ی واقعی روی سرور یکی باشد، وب‌سرور پوشه را سرو می‌کند و درخواست هرگز به دیتالایف نمی‌رسد.

نام‌های پرخطر: uploads، templates، engine، backup، language، public. اگر دسته‌ای با نام templates ساختید و صفحه‌اش ۴۰۳ یا فهرست فایل نشان داد، مشکل همین است. راه‌حل: نام مستعار دسته را عوض کنید (مثلاً themes).

جلوگیری از محتوای تکراری

بعد از فعال کردن آدرس سئوپسند، هر صفحه از دو مسیر در دسترس می‌ماند: مسیر تازه و مسیر قدیمی index.php?newsid=…. برای گوگل این یعنی دو نسخه از یک صفحه.

۱. تگ canonical

دیتالایف تگ canonical را در خروجی {headers} می‌سازد. کافی است در main.tpl از این تگ استفاده کرده باشید و آن را با متاتگ‌های دستی جایگزین نکنید.

۲. صفحه‌بندی

صفحات دوم به بعد فهرست‌ها معمولاً محتوای منحصربه‌فردی ندارند. در تنظیمات متاتگ‌ها، عنوان صفحات بعدی را با شماره‌ی صفحه متمایز کنید تا عنوان‌های یکسان تولید نشود.

۳. نسخه‌ی چاپی و آرشیو

اگر صفحه‌ی چاپ و آرشیوهای تاریخی برایتان ترافیک ارگانیک نمی‌آورند، در robots.txt ببندیدشان:

User-agent: *
Disallow: /index.php?mod=print
Disallow: /*print:page
Disallow: /*do=lastcomments
Disallow: /*do=search
Disallow: /*action=mobile

Sitemap: https://example.com/sitemap.xml

انتقال از ساختار قدیمی

اگر سایت شما قبلاً ایندکس شده و حالا ساختار را عوض می‌کنید، ریدایرکت ۳۰۱ اجباری است — نه اختیاری. دیتالایف بخش «مدیریت ریدایرکت‌ها» را در پنل دارد که برای تعداد محدود آدرس مناسب است.

برای انتقال گسترده، قاعده‌ی سراسری در .htaccess کارآمدتر است. نمونه‌ی انتقال از الگوی بدون دسته به الگوی با دسته:

RewriteCond %{QUERY_STRING} ^newsid=([0-9]+)$
RewriteRule ^index.php$ /index.php?newsid=%1 [R=301,L]

و چند قاعده‌ی بهداشتی که بهتر است از روز اول داشته باشید:

# حذف www
RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]

# اجبار HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

بعد از انتقال چه کنید

  1. نقشه‌ی سایت را از پنل بازسازی کنید و در سرچ کنسول دوباره ثبت کنید.
  2. گزارش «پوشش» سرچ کنسول را دو تا سه هفته پیگیری کنید؛ افزایش موقت خطاها طبیعی است.
  3. لینک‌های داخلی را به آدرس‌های تازه به‌روز کنید. ریدایرکت کار می‌کند، ولی لینک مستقیم بهتر است.
  4. ریدایرکت‌ها را حداقل یک سال نگه دارید. حذف زودهنگام یعنی از دست دادن اعتبار لینک‌های خارجی.

جمع‌بندی

ساختار آدرس را قبل از انتشار محتوا نهایی کنید، ساده و پایدار نگهش دارید و به الگویی که هر بار جابه‌جایی دسته آدرس را عوض می‌کند تن ندهید. اگر مجبور به تغییر شدید، ریدایرکت ۳۰۱ کامل و نقشه‌ی سایت تازه، تفاوت بین یک افت دو هفته‌ای و یک افت شش ماهه است.

دیدگاه‌ها

پرسش یا نکته‌ای درباره‌ی این مطلب دارید؟ بنویسید تا پاسخ بدهیم.

دیدگاه خود را بنویسید

بدون ثبت‌نام هم می‌توانید نظر بدهید. برای پیگیری پاسخ‌ها، حساب کاربری بسازید.

اگر کد خوانا نیست، برای بروزرسانی روی تصویر کلیک کنید