نحوه redirect کردن در صورت وجود قسمتی از لینک

emad_67

Member
سلام
من از مامبو برای سایتم استفاده می کنم. توی سایت برای هر مطلب 2 تا لینک به وجود میاد مثلا توی سایت من این دو لینک هر دوش برای یک مطلب هست:

http://www.irpcn.com/content/view/62/24
http://www.irpcn.com/content/view/62

که در اینجا 62 آی دی مطلب هست و 24 آی دی مجموعه اون مطلب. خوب حالا میخواستم بدونم که چه جوری میتونم تمام لینک هایی رو که شماره مجموعه اونا توی لینک اومده رو ریدایرکت کنم روی لینکی که بدون شماره مجموعه هست؟ یعنی در واقع هر لینکی به صورت content/view/id/section ریدایرکت بشه روی content/view/id

ضمنا اگه نمیشه همچین ریدایرکتی رو ساخت آیا میشه تو robot.txt جوری تعریف کرد که فقط وقتی به آدرسی میرسه که section/ رو داره رو disallow کنه و فقط آدرس هایی رو که به id/ ختم میشن رو ایندکس کنه؟

ببخشید اگه اینجا پرسیدم چون فکر کردم دوستان php کار بیشتر با htaccess. آشنایی دارن.
با تشکر
 

sunrise

Member
از اين .htaccess مي تونيد براي انجام اين کار استفاده کنيد:
کد:
RewriteEngine On

RewriteRule ^content/view/([0-9]*)/([0-9]*) http://www.irpcn.com/content/view/$1
اميدوارم جواب بده.
 

shnoit

Well-Known Member
فکر کنم باید این تغییراتی رو که خودتون گفتین رو در فایل htaccess. انجام داد. و احتیاجی هم به فایلهای اضافی دیگه ای نیست.
 

emad_67

Member
از اين .htaccess مي تونيد براي انجام اين کار استفاده کنيد:
کد:
RewriteEngine On

RewriteRule ^content/view/([0-9]*)/([0-9]*) http://www.irpcn.com/content/view/$1
اميدوارم جواب بده.

خیلی خیلی ممنون
جواب دادش.
فقط یه چیز کوچیک دیگه:
من اگه بخوام در انتهای آدرس ساخته شده یک / هم بخوره باید چیکار کنم؟
کد رو به این شکل نوشتم ولی جواب نداد:
کد:
RewriteRule ^content/view/([0-9]*)/([0-9]*) http://www.irpcn.com/content/view/$1/
یعنی بعد از 1$ یک / اظافه کردم ولی کار نکرد.
اگه اینو هم لطف کنی درست کنی خیلی ممنونت میشم چون میخوام لینک ها دقیقا با لینک هایی که سایت مپ معرفی می کنه یکی باشه.
ممنون
 

emad_67

Member
ممنون مشکلم حل شد.
اینجوری نوشتم:
کد:
RewriteRule ^content/view/([0-9]*)/([0-9]*)/ http://www.irpcn.com/content/view/$1/
 

sunrise

Member
یعنی بعد از 1$ یک / اظافه کردم ولی کار نکرد.
اگه اینو هم لطف کنی درست کنی خیلی ممنونت میشم چون میخوام لینک ها دقیقا با لینک هایی که سایت مپ معرفی می کنه یکی باشه.
ممنون
کدي که نوشتي يه ضعف داره و اونم اينه که بايد حتما آخر لينک / وجود داشته باشه تا صفحه بياد اما اگه کد زير رو استفاده کني چه / داشته باشه چه نداشته باشه به همون هدايت ميشه:
کد:
RewriteRule ^content/view/([0-9]*)/([0-9]*) http://www.irpcn.com/content/view/$1\/
 

emad_67

Member
کدي که نوشتي يه ضعف داره و اونم اينه که بايد حتما آخر لينک / وجود داشته باشه تا صفحه بياد اما اگه کد زير رو استفاده کني چه / داشته باشه چه نداشته باشه به همون هدايت ميشه:
کد:
RewriteRule ^content/view/([0-9]*)/([0-9]*) http://www.irpcn.com/content/view/$1\/
ممنون دوست من.
من کدی رو که الان دادی امتحان کردم ولی جواب نداد. یعنی چه آخر آدرس / داشته باشه یا نداشته باشه، وقتی کلیک میکنم صفحه همینجوری میمونه و اصلا ریدایرکت نمیشه. نمی دونم منظورمو خوب متوجه شدی یا نه ولی من میخوام اگه 2 تا آدرس مثل این:
کد:
http://www.irpcn.com/content/view/58/22/
http://www.irpcn.com/content/view/58/22
وجود داشت هر دوتاشون ریدایرکت بشن روی این آدرس:
کد:
http://www.irpcn.com/content/view/58/
یعنی آدرس نهایی آخرش / داشته باشه.
ممنون از این جواب میدی
 

sunrise

Member
ممنون دوست من.
من کدی رو که الان دادی امتحان کردم ولی جواب نداد.
البته من خودم تست کردم راحت جواب ميده، اما اگه با اين حالت مشکل داره مي تونيد از اين استفاده کنيد:
کد:
RewriteRule ^content/view/([0-9]*)/([0-9]*)/ http://www.irpcn.com/content/view/$1/
RewriteRule ^content/view/([0-9]*)/([0-9]*) http://www.irpcn.com/content/view/$1/
 

emad_67

Member
البته من خودم تست کردم راحت جواب ميده، اما اگه با اين حالت مشکل داره مي تونيد از اين استفاده کنيد:
کد:
RewriteRule ^content/view/([0-9]*)/([0-9]*)/ http://www.irpcn.com/content/view/$1/
RewriteRule ^content/view/([0-9]*)/([0-9]*) http://www.irpcn.com/content/view/$1/
اینم جواب ندادش. نمیدونم چه مرگشه این سرور
 

sunrise

Member
اینم جواب ندادش. نمیدونم چه مرگشه این سرور
مطمئن هستيد که امکان استفاده از .htaccess براي سروري که سايت روي اون قرار گرفته وجود داره؟ و اينکه قبل از کدهاي فوق عبارت RewriteEngine On رو قرار داديد؟
 

emad_67

Member
مطمئن هستيد که امکان استفاده از .htaccess براي سروري که سايت روي اون قرار گرفته وجود داره؟ و اينکه قبل از کدهاي فوق عبارت RewriteEngine On رو قرار داديد؟
بله امکان استفاده از htaccess وجود داره، الانم مثلا آدرس های بدون www رو ریدایرکت میکنه به با www.
RewriteEngine On رو هم قرار دادم ولی نمیدونم چشه؟
 

sunrise

Member
تست کنيد ببينيد آيا براي لينک زير هم اين مشکل رو داريد يا نه:
کد:
http://www.gtpland.com/news/content/view/62/24
http://www.gtpland.com/news/content/view/62/24/
من اين رو بصورت زير نوشتم:
کد:
RewriteRule ^content/view/([0-9]*)/([0-9]*) http://www.irpcn.com/content/view/$1\/
 

emad_67

Member
با تشکر
ظاهرا هاست من مشکل داره چون لینک هایی که شما دادی درست کار میکنه ولی وقتی من همین کد رو تو htaccess خودم میزارم اصلا هیچ کار نمیکنه و صفحه همین جوری میمونه.
 

Domanjiri

Well-Known Member
سلام

اميدوارم با اين كد مشكلتون حل بشه :

کد:
Options +FollowSymLinks 

RewriteEngine On 

RewriteRule ^content/view/([0-9]+)/([0-9]+)/?$   http://www.irpcn.com/content/view/$1/ [L,NC]

در ضمن در كدهاي قبلي شما از ستاره ( *) استفاده كرده بوديد كه در اين مورد اصلا كار درستي نيست.

موفق باشيد..
 

جدیدترین ارسال ها

بالا