حل مشکل حذف شدن اسلش انتهای آدرس ها توسط WP-Rocket
طبق توییتی که اقای امین مهدوی در تاریخ 1 دی 99 به اطلاع رسوندند افزونه راکت باعث دابلیکیت کانتنت میشه، با ئیگیری های بیشتر متئجه شدیم که همچین مشکلی برای کاربران دیگه ای هم به وجود اومده…
به عنوان مثال همین الان میتوانید صفحه میهن پنل را بهصورت
https://matinbeigi.ir/wp-rocket نیز مشاهده کنید. حالا همین صفحه با https://matinbeigi.ir/wp-rocket/ نیز مشاهده میشود. اینجا باید یک ریدایرکت از https://matinbeigi.ir/wp-rocket به https://matinbeigi.ir/wp-rocket/ داشته باشیم اما ریدایرکتی اتفاق نمیافتد.
رابطه مشکل راکت با URLها
زمانی که وردپرس راکت را از روی سایت غیرفعال میکنیم، مشکل برطرف میشود و این موضوع باعث میشود اطمینان داشته باشیم که مشکل از وردپرس راکت هست.
آیا واقعا نیاز به حل این مشکل داریم
در واقع هیچ نیازی به حل این مشکل نیست. چرا که URLهای شما توسط گوگل به همان شکلی که در سایت شما و در سایتهای دیگر به سایت شما لینک داده شده باشند به رباتهای گوگل اعلام خواهند شد.
حالا گوگل هیچ آدرسی از سایت ما بهشکل https://matinbeigi.ir/wp-rocket ندارد پس این موضوع باعث میشود این صفحه توسط گوگل بهعنوان صفحه تکراری یا Duplicate Content شناخته نشود.
چطور مشکل را حل کنیم
اگر این موضوع روی اعصاب شماست بهتر است آن را برطرف کنید. مثل یکی از دوستان که به من میگفت وقتی رنگ هدر سایتم را قرمز میکنم، ورودی گوگل بهتری دارم. 🙂 پس با لبخندی زیبا از ایشان درخواست کردم هدر سایتش را قرمز کند تا ورودی بیشتری داشته باشد. 😀
روش اول: استفاده از افزونه
شما کافیست افزونه WP Rocket | Enforce Trailing Slash on URLs را دانلود و روی سایت خود نصب کنید. به همین راحتی! بدون نیاز به هیچ تنظیماتی، مشکل برطرف خواهد شد.
روش دوم: حل مشکل بدون نیاز به نصب افزونه
در روش دوم، کافیست وارد فایل منیجر هاست خود شوید و فایل .htaccess را ویرایش کنید. سپس کدهای زیر را به این فایل اضافه کنید و مشکل برای همیشه حل خواهد شد.
# Force trailing slash
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]
اگر شما آدرسهای پست خود را بدون اسلش در نظر گرفتهاید متاسفانه راهی برای حذف اسلش از انتهای پست نیست. طبق گفته سایت وردپرس راکت شما نیازی به حل این مشکل نخواهید داشت چرا که افزونههای سئو با استفاده از canonical به آدرس اصلی لینک میدهند و این موضوع باعث Duplicate Content در سایت شما نخواهد شد.
اسلش انتهایی را حذف کنید
برای حذف اسلش انتهای آدرس ها میتوانید از افزونه زیر استفاده کنید.
WP Rocket | Remove Trailing Slash from URLs
همچنین با استفاده از کد زیر در htaccess این امر میسر می باشد.
# Remove trailing slash
RewriteCond %{REQUEST_URI} !wp-admin
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|pdf)$ [NC]
RewriteRule ^(.*)/$ /$1 [R=301,L]' . PHP_EOL . PHP_EOL;<br>
منبع : wp-rocket.me
خیلی خوب بود متین جان
فقط ترجمه رو یکم ویراستاری هم میکردی داداچ
ممنونم از اینکه وقت گذاشتید و مطالعه کردید
چشم حتما ویراستاری هم میکنم