اگرچه راه‌اندازی یک سایت از طریق WordPress آسان است، اما ممکن است پیوندهایی را از دست بدهید که بر تجربه کاربر در هنگام مدیریت محتوای شما تأثیر منفی می‌گذارند. لینک های خطا با کدهای 404 را می توان به راحتی به صورت دستی و از طریق وردپرس پیدا کرد. علاوه بر این، می‌توانید ایمیل‌های ارسال شده توسط WordPress را زیر نظر داشته باشید و مشکلات سایت خود را بررسی کنید. برای رفع کدهای نادرست، من سریعترین روشهای تغییر مسیر 301 را در WordPress برای شما گردآوری کرده ام.

ریدایرکت 301 چیست؟

کد 301 یکی از کدهای وضعیت http است. ریدایرکت 301 نامی است که برای هدایت یک صفحه از URL قدیمی به URL جدید با استفاده از کد 301 داده می شود. بیشتر زمانی استفاده می شود که آدرس صفحه تغییر کند یا محتوای آن جابجا شود. در فرآیند سئو جایگاه مهمی دارد. در زیر می توانید نمونه های جامعی از نمونه تغییر مسیرهای 301 را بیابید.

تغییر مسیر ساده 301

تغییر مسیر ساده 301 با کد زیر که در فایل htaccess. در دایرکتوری ریشه سایت شما نوشته شده است انجام می شود.

https://www.domainadresiniz.com/yeni-sayfanizin-absolute-urlsi/" style="color:#272822;display:none;background-color:#F8F8F2" aria-label="کپی" data-copied-text="کپی شده!" data-has-text-button="textSimple" data-inside-header-type="headlights" aria-liveco-copy"کپی کنید
Redirect 301 /eski-sayfanizin-relative-urlsi/ https://www.domainadresiniz.com/yeni-sayfanizin-absolute-urlsi/

اگر سایت شما دارای پنل است یا از نرم افزار cms/نرم افزار آماده استفاده می کنید، این امکان وجود دارد که بدون نوشتن کد از طریق منوی ریدایرکت ها در پنل خود به این فرآیند دست یابید. برای مثالی برای زیرساخت WordPress، تغییر مسیر 301 در WordPress را می توان با Rank Math SEO، Yoast SEO، All in One SEO و افزونه های SEO مشابه بدون نیاز به نوشتن کد انجام داد. با این حال، برای تغییر مسیرهای پیچیده، ممکن است نیاز به نوشتن کد خاصی در فایل htaccess باشد. به عنوان نمونه‌ای از تغییر مسیرهای پیچیده، کدهایی را که برای ریدایرکت‌هایی که اغلب مورد نیاز است نوشته‌ایم به اشتراک می‌گذاریم.

تغییر مسیر همه پارامترهای پرس و جو با 301

# BEGIN: Redirect non-critical query parameters to the current page with 301 redirect by Onur Özden Web Çözümleri
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !(.*)wp-admin(.*)
RewriteCond %{REQUEST_URI} !(.*)wp-login(.*)
RewriteCond %{REQUEST_URI} !\.(jpe?g|gif|bmp|png|webp|avif|tiff|pdf|mp4|avi|mkv|flv|zip|rar|docx|doc|xlsx|csv|txt|rtf|xml|css|js) [NC]
RewriteCond %{QUERY_STRING} .
RewriteRule ^ %{REQUEST_URI}? [L,R=301]
</ifmodule>
# END: Redirect non-critical query parameters to the current page with 301 redirect by Onur Özden Web Çözümleri

با کدهای بالا می توانید تمام پارامترهای پرس و جو را به آدرس اینترنتی فعلی هدایت کنید. در کد مثال، صفحات ویژه WordPress مانند صفحه ورود پیش‌فرض و صفحه مدیریت، و برخی از انواع فایل‌های خاص مستثنی شده‌اند. در صورت نیاز می‌توانید موارد استثنا را اصلاح کنید.

Htaccess HTTPS و WWW Redirection

باز کردن صفحات به صورت http به دلیل اینکه با وجود SSL به نسخه https هدایت نمی شوند و انتشار همان نسخه بدون www با وجود استفاده از www در سایت نه تنها به دلایل فنی بلکه از نظر سئو و تجربه کاربری نیز مشکل بزرگی است. برای حل این مشکل می توانید آدرس های http را با کدهای زیر به https هدایت کنید و مطمئن شوید که صفحه فقط با www باز می شود.

https://www.%{HTTP_HOST}/$1/ [R=301,L] </ifmodule> # END: هدایت همه آدرس‌ها به WWW با تغییر مسیر 301 توسط Onur Özden Web Çözümleri" style="color:#272822;display:none;background-color:#F8F8F2" aria-label="Copyed"ext" data-has-text-button="textSimple" data-inside-header-type="headlights" aria-live="polite" class="code-block-pro-copy-button">کپی کنید
# BEGIN: Redirect All Urls to WWW with 301 redirect by Onur Özden Web Çözümleri
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1/ [R=301,L]
</ifmodule>
# END: Redirect All Urls to WWW with 301 redirect by Onur Özden Web Çözümleri

فایل htaccess به طور خودکار با ساختار پیوند ثابت WP ایجاد می شود. اگر نمی توانید فایل را پیدا کنید، می توانید به صورت دستی از طریق ftp یا کنترل پنل میزبان ایجاد کنید:

  • Notepad را باز کنید. (یا هر ویرایشگر کدی که استفاده می کنید)
  • کد مربوطه را قرار دهید.
  • پسوند فایل را به جای .txt که مخفف متن است، .htaccess کنید و نامی را مشخص نکنید.
  • فایلی را که ایجاد کرده اید به دایرکتوری ریشه سایت خود اضافه کنید (این دایرکتوری اغلب public_html یا htdocs نامیده می شود).

با این روش می توانید تغییر مسیر HTTPS و WWW را با .htaccess انجام دهید.

تغییر مسیر HTTPS Htaccess

اگر از www در سایت خود استفاده نمی کنید و فقط می خواهید URL های HTTP را https بسازید، به سادگی این کدهایی را که برای شما نوشته ایم به دایرکتوری ریشه سایت خود اضافه کنید.

https://%{HTTP_HOST}/%{REQUEST_URI} [R=301,L] RewriteCond %{HTTPS} تخفیف RewriteRule ^ https://%{HTTP_HOST}/%{REQUEST_URI} [R=301,L] </ifmodule> # END: هدایت همه آدرس‌های اینترنتی به https و غیرwww با تغییر مسیر 301 توسط Onur Özden Web Çözümleri" style="color:#272822;display:none;background-color:#F8F8F2" aria-label="Copyed-ext" data-has-text-button="textSimple" data-inside-header-type="headlights" aria-live="polite" class="code-block-pro-copy-button">کپی کنید
# BEGIN: Redirect All Urls to https and non-www with 301 redirect by Onur Özden Web Çözümleri
<ifmodule mod_rewrite.c>
# Skip it if the url is correct
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* - [L]

# https and non-www redirect
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ https://%{HTTP_HOST}/%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}/%{REQUEST_URI} [R=301,L]
</ifmodule>
# END: Redirect All Urls to https and non-www with 301 redirect by Onur Özden Web Çözümleri

ارسال دامنه

Domain Forwarding، در زبان ترکی، نامی است که به تغییر مسیر دامنه و همه URL های آن به یک دامنه جدید داده می شود. با کد زیر می توانید همه URL های موجود در دامنه قدیمی را به دامنه جدید هدایت کنید. فراموش نکنید که مقادیر قدیمی و جدید دامنه و پسوندهای دامنه را با نام دامنه قدیمی و جدید جایگزین کنید.

# BEGIN: Redirect All Old Domain Urls to New Domain Urls with 301 Redirect by Onur Özden Web Çözümleri
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^olddomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.olddomain\.com$
RewriteRule ^(.*)$ "https\:\/\/www\.newdomain\.com\/$1" [R=301,L]
</ifmodule>
# END: Redirect All Old Domain Urls to New Domain Urls with 301 Redirect by Onur Özden Web Çözümleri

Htaccess AMP Redirect

اگر برای مدتی از AMP در سایت خود استفاده کرده اید و سپس آن را حذف کرده اید، ممکن است لینک های ویرایش شده توسط AMP در موتورهای جستجو نمایه شده باشند. پس از حذف AMP، باید این پیوندها را به حالت فعلی خود هدایت کنید. در غیر این صورت لینک هایی با پارامتر amp query در صفحه نتایج موتور جستجو 404 را برمی گرداند و کاربر نمی تواند به محتوا دسترسی داشته باشد. به تغییر URL با آمپر به بدون آمپر، "ریدایرکت آمپر به غیر آمپر" می گویند. برای انجام این تغییر مسیر با استفاده از کد 301 می توانید از کدهای زیر استفاده کنید.

# BEGIN: AMP to NON-AMP Redirect for All Known AMP Variations by Onur Özden Web Çözümleri
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} amp [OR,NC]
RewriteCond %{QUERY_STRING} noamp=mobile [OR,NC]
RewriteCond %{QUERY_STRING} amp=1 [NC]
RewriteRule ^ %{REQUEST_URI}? [L,R=301]
RewriteCond %{REQUEST_URI} (.+)/amp(.*)$ [NC]
RewriteRule ^ %1/ [R=301,L]
</ifmodule>
# END: AMP to NON-AMP Redirect for All Known AMP Variations by Onur Özden Web Çözümleri

WordPress فایل Htaccess

اگر فایل htaccess شما در WordPress خراب است و کدهای پیش‌فرض اضافه شده توسط WordPress از بین رفته است، می‌توانید با کلیک روی تنظیمات > پیوندهای ثابت > ذخیره، کدهای htaccess را دوباره اضافه کنید. اگر به پنل مدیریت خود دسترسی ندارید، می توانید فایل htaccess را در دایرکتوری ریشه سایت خود باز کرده و کدهای زیر را وارد کنید. این کدها فقط برای سایت های وردپرس نصب شده در دایرکتوری اصلی ساب دامنه و دامنه معتبر هستند. اگر سایت شما در یک زیر پوشه نصب شده است، باید از کدهای عنوان بعدی استفاده کنید.

# BEGIN WordPress

RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

کدهای Htaccess برای WordPress در زیر پوشه

اگر فایل htaccess شما در WordPress خراب است و سایت شما به جای دایرکتوری اصلی یا زیر دامنه در یک زیر پوشه نصب شده است، می توانید کدهای زیر را با افزودن آنها به فایل htaccess. در فهرست اصلی سایت استفاده کنید. در کدها فراموش نکنید که قسمت "subfolder" را با نام زیرپوشه ای که WordPress در آن نصب کرده اید و قسمت "example.com" را با دامنه خود جایگزین کنید.

# BEGIN WordPress

<ifmodule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ subfolder/index.php [L]
</ifmodule>

# END WordPress

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

سوالات متداول


WordPress تغییر مسیر 301 چیست؟

WordPress ریدایرکت 301 نامی است که به ریدایرکت کردن صفحاتی در سایت شما داده می‌شود که URL آنها تغییر کرده، دیگر استفاده نمی‌شود یا منتقل شده‌اند، به صفحه مرتبط دیگری. ریدایرکت 301 نام خود را از کد 301 گرفته است که کد وضعیت HTTP است.
ریدایرکت htaccess 301 چیست؟

تغییر مسیر 301 .htaccess فرآیند انجام تغییر مسیر 301 با نوشتن کدهای تغییر مسیر در فایل htaccess است. فایل htaccess استفاده می شود که به آن "htaccess 301 redirect" می گویند.
WordPress چگونه یک تغییر مسیر 301 انجام دهیم؟

با استفاده از پلاگین های سئو مانند Rank Math SEO، Yoast SEO، All in One SEO یا پلاگین های تغییر مسیر مانند Redirection، 301 Redirect می توانید WordPress 301 redirection را بدون نیاز به دانش کد انجام دهید.