حل مشکل تریلینگ اسلش Trailing Slash در Htaccess
این قطعه کد Htaccess سریع شما را قادر میسازد تا اعمال کنید که همه URL های دایرکتوری یک اسلش انتهایی اضافه کنند. این یک قطعه کد بسیار ساده است. در اینجا چند مثال آوردیم تا به شما ایده بهتری از نحوه کارکرد آن بدهد.
در این آموزش حل مشکل تریلینگ اسلش در htaccess
در بعضی از سایت های وردپرس نه همشون، مشکل ترالینگ اسلش بوجود میآیند. ما با تستی که انجام دادیم و سایتهایی رو هم بررسی کردیم، به این نتیجه رسیدیم که تریلینگ اسلش توسط افزونه wp rocket اتفاق میافتد و با سرچ کردن، مقالات سایت wp-rocket رو بررسی کردیم.
افزونه wp-rocket اسلش انتهایی url ها را حذف میکند!
وقتی از پلاگین راکت وردپرس استفاده میکنید بصورت پیشفرض افزونه wp rocket انتهای همه url ها سایت شما رو حذف میکند و اگر بررسی کنید متوجه خواهید شد که توسط افزونه های سئو تگ کنونیکال با اسلش است و احتمال داره که هر دوی این url های سایت شما ایندکس شوند.
- به سایت wp rocket مراجعه کنید مثالهایی گفته شده است: Redirection to Enforce/Remove Trailing Slash on URLs
توجه: اگر هم یکی از این نوع url ها ایندکس نشوند، حتما در سرچ کنسول در بخش Coverage و بخش Excluded و در تب Details و مشکلات مربوط به Crawled – currently not indexed نشون داده میشه. شما میتوانید یه کار دیگه هم انجام بدید؛ مثلا با site: آدرس خود را هم با اسلش و هم با بدون اسلش وارد کنید و ببینید آیا ایندکس شده یا نه.
یعنی اگر شما 1000 تا url با اسلش داشته باشی، 1000 تای دیگه هم بدون اسلش خواهید داشت. حتی من یک فروشگاه اینترنتی رو بررسی میکردم، برای فیلتر های اون فروشگاه هم دو تا url داشت یعنی از یک فیلتر 2 تا صفحه یکسان وجود داشت.
به نمونه های url زیر توجه کنید که مشکل تریلینگ اسلش ایجاد شده. در اینجا چند مثال برای نشان دادن نحوه عملکرد کد آورده شده است. فرض کنید سایت شما درخواست های زیر را دریافت میکند.
https://example.com/category/blog
https://example.com/category/purchase-guide
https://example.com/product-category/laptop
https://example.com/product-category/laptop?filter_brand=laptop-hp
البته برای این سایت url هایش توسط تگ کنونیکال canonical با اسلش کنونیکال شده است و به موتور های جستجو آدرس درست رو نشون میده. در نمونه زیر برای این سایت آدرس درست کنونیکال این است.
https://example.com/category/blog/
https://example.com/category/purchase-guide/
https://example.com/product-category/laptop/
https://example.com/product-category/laptop/?filter_brand=laptop-hp
آیا واقعا باید این مشکل را حل کنیم؟
نیازی به حل این مشکل نیست. زیرا URL های سایت شما به همان روشی که وب سایت شما و سایر وب سایت ها به سایت ما پیوند میدهند توسط گوگل کشف و به ربات های گوگل هم اعلام میشوند. حالا فرض کنید یکی به اشتباه به سایت ما بدون / اسلش لینک داد چی!؟
راه حل تریلینگ اسلش Trailing slash اسلش انتهای url ها
روش اول: می توانید از افزونه های در مخزن وردپرس سرچ کنید Trailing Slash یکی از این پلاگین ها رو نصب کنید و کار تمام.
روش دوم: برای اطمینان از اینکه همه درخواستهای دایرکتوری شامل یک اسلش انتهایی هستند از قطعه کد زیر در فایل Htaccess روت هاست خود قرار دهید و مشکل حل خواهد شد.
# Force trailing slash hexella --------------
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
</IfModule>
مهناز گفته:
در تاریخ 2022-05-31 ارسال شده.عالی بود …
محسن هوشمند گفته:
در تاریخ 2022-05-31 ارسال شده.تشکر