رفتن به مطلب

اصلاح یک دسته از لینکهای مشخص


پست های پیشنهاد شده

سلام و خسته نباشید خدمت همه اساتید محترم

بنده یک مشکل کوچیک داخل سایتم دارم که امیدوارم با کمک شما بتونم حلش کنم

در واقع مشکل این هست که لینک هایی که در ادرسشون اسپیس بکار رفته بصورت اررور 404 نمایش داده میشن 

مثل این لینک 

***laylists/the best

یا

***laylists/the%20best

حالا از اونجایی که برای لینک سازی داخلی به اینجور لینک ها نیار دارم خواستم ببینم راهی هست که مثلا 

با جاوا یا ریدایرکت و یا .... کاری کرد که لینک هایی که اینجور ساختاری دارند رو به لینک سالم تبدیل کرد؟

در واقع باید قانونی نوشت که %20 رو به - تبدیل کرد

 

لینک به ارسال
در 23 دقیقه قبل، asadiy4n گفته است :

سلام، خود وردپرس اینکار رو براتون انجام میده در واقع همین الان من چک کردم لینکتون به این شکل هست و مشکلی ندارید



https://hipborn.ir/playlists/the-best

 

تشکر از پاسختون 

اما متاسفانه انگار شما متوجه منظور من نشدید

بنده میخوام 

زمانی که این لینک رو با این شکل وارد مرورگرد میکنم 

hipborn.ir/playlists/the%20best
یا به این صورت
hipborn.ir/playlists/the best

لینک ارورو 404 نده و لینک اصلی باز بشه

 

hipborn.ir/playlists/the-best

شما لینک اول رو داخل مرورگر جست و جو کنید متوجه میشید

ویرایش شده توسط estedadrap
لینک به ارسال

اگر قبلا لینکها رو در صفحات وارد کردید و میخواد اصلاح کنید که میتونید از str_replace استفاده کنید. اما اگر میخواید وقتی کسی لینک رو به حالت space وارد کرد داخل مرورگر خودکار به دش تبدیل بشه از طریق htaccess انجام بدید، تایپیک زیر رو ببینید. البته من واقعا دلیل اینکار رو متوجه نمیشم

https://stackoverflow.com/questions/5821120/301-redirect-to-replace-all-spaces-to-hyphens

قبل از هزگونه تغییر لطفا نسخه پشتیبان تهیه کنید.

 

  • پسندیدن 2
  • امتیاز 1
لینک به ارسال
در ۱ ساعت قبل، asadiy4n گفته است :

اگر قبلا لینکها رو در صفحات وارد کردید و میخواد اصلاح کنید که میتونید از str_replace استفاده کنید. اما اگر میخواید وقتی کسی لینک رو به حالت space وارد کرد داخل مرورگر خودکار به دش تبدیل بشه از طریق htaccess انجام بدید، تایپیک زیر رو ببینید. البته من واقعا دلیل اینکار رو متوجه نمیشم


https://stackoverflow.com/questions/5821120/301-redirect-to-replace-all-spaces-to-hyphens

قبل از هزگونه تغییر لطفا نسخه پشتیبان تهیه کنید.

 

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

این دستور بکارم اومد فقط تنها مشکلی که هست اینه که بعلاوه کارکتر %20 (همون فاصله) عدد 0 رو هم به دش تبدیل میکنه 

خواستم ببینم میتونی این دستور رو کامل تر کنید برام

RewriteRule ^([^\s%20]*)(?:\s|%20)+(.*)$ $1-$2 [N,E=NOSPACE:1,DPI]

 

لینک به ارسال

تست کنید

RewriteRule "^(\S*) +(\S* .*)$" $1-$2 [N,NE]
RewriteRule "^(\S*) (\S*)$" $1-$2 [L,R=302,NE]

همچنین در این خصوص به نظرم این مقاله ها رو بخونید میتونه براتون مفید باشه

https://linux.tosinso.com/fa/articles/32462/
https://linux.tosinso.com/fa/articles/32549/

 

  • پسندیدن 2
لینک به ارسال
در 18 دقیقه قبل، asadiy4n گفته است :

تست کنید


RewriteRule "^(\S*) +(\S* .*)$" $1-$2 [N,NE]
RewriteRule "^(\S*) (\S*)$" $1-$2 [L,R=302,NE]

 

داداش نشد ...

درواقع این قانون عالی کار میکنه فقط 0 رو اگه تبدیل نکنه ردیف میشه

RewriteRule ^([^\s%20]*)(?:\s|%20)+(.*)$ $1-$2 [N,E=NOSPACE:1,DPI]

بازم دمت گرم جواب دادی 

 

لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید



ورود به حساب کاربری
×
×
  • اضافه کردن...