English

WP Rocket اسلش انتهای آدرس‌ها را حذف می‌کند! چاره چیست؟!

WP Rocket اسلش انتهای آدرس‌ها را حذف می‌کند! چاره چیست؟!

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

به عنوان مثال همین الان می‌توانید صفحه میهن پنل را به‌صورت https://mihanwp.com/mihanpanel نیز مشاهده کنید. حالا همین صفحه با https://mihanwp.com/mihanpanel/ نیز مشاهده می‌شود. اینجا باید یک ریدایرکت از https://mihanwp.com/mihanpanel به https://mihanwp.com/mihanpanel/ داشته باشیم اما ریدایرکتی اتفاق نمی‌افتد.

ارتباط این مشکل با وردپرس راکت

زمانی که وردپرس راکت را از روی سایت غیر‌فعال می‌کنیم، مشکل برطرف می‌شود و این موضوع باعث می‌شود اطمینان داشته باشیم که مشکل از وردپرس راکت است.

آیا واقعا نیاز به حل این مشکل داریم

در واقع هیچ نیازی به حل این مشکل نیست. چرا که URL‌های شما توسط گوگل به همان شکلی که در سایت شما و در سایت‌های دیگر به سایت شما لینک داده شده باشند به ربات‌های گوگل اعلام خواهند شد.

حالا گوگل هیچ آدرسی از سایت ما به‌شکل https://mihanwp.com/mihanpanel ندارد پس این موضوع باعث می‌شود این صفحه توسط گوگل به‌عنوان صفحه تکراری یا Duplicate Content شناخته نشود.

چطور مشکل را حل کنیم

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

روش اول: استفاده از افزونه

شما کافیست افزونه WP Rocket | Enforce Trailing Slash on URLs را دانلود و روی سایت خود نصب کنید. به همین راحتی! بدون نیاز به هیچ تنظیماتی، مشکل برطرف خواهد شد.

روش دوم: حل مشکل بدون نیاز به نصب افزونه

در روش دوم، کافیست وارد فایل منیجر هاست خود شوید و فایل .htaccess را ویرایش کنید. سپس کدهای زیر را به این فایل اضافه کنید و مشکل برای همیشه حل خواهد شد.

# Force trailing slash by mihanwp.com
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteCond %{REQUEST_FILENAME} !\.(gif|jpg|png|jpeg|css|xml|txt|js|php|scss|webp|mp3|avi|wav|mp4|mov)$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1/ [L,R=301]

در صورتی که از NGINX استفاده می‌کنید، کد زیر را در فایل تنظیمات وب سرور اضافه کنید:

# Force Trailing Slash (less REST API calls and files)

if ($request_uri !~ "^/wp-json") {
        rewrite ^([^.]*[^/])$ $1/ permanent;
}

اگر شما آدرس‌های پست خود را بدون اسلش در نظر گرفته‌اید، برای حذف اسلش از انتهای آدرس در انجین ایکس، از کد زیر استفاده کنید:

# Remove Trailing Slash (less REST API calls and files)

if ($request_uri !~ "^/wp-json") {
        rewrite ^/(.*)/$ /$1 permanent;
}

هرچند در هر صورت طبق گفته سایت وردپرس راکت شما نیازی به حل این مشکل نخواهید داشت چرا که افزونه‌های سئو با استفاده از canonical به آدرس اصلی لینک می‌دهند و این موضوع باعث Duplicate Content در سایت شما نخواهد شد.

به همین راحتی! موفق باشید.

نظر شما در این مورد چیه؟

⚠️ دسترسی محدود

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