PDA

View Full Version : سوال در مورد rewriterule



Weblove
سه شنبه 01 مهر 1393, 01:18 صبح
سلام

بنده آدرس هامو به این شکل تغییر دادم


RewriteRule ^news-([0-9-]+)$ ?news=$1 [NC]
RewriteRule ^news-([0-9-]+)-(.*)$ ?news=$1&title=$2 [NC]

حالا وقتی به همون حالات news=15 باز می کنیم هنوز همون باز میشه
می خوام وقتی می زنند روی news=15 تبدیل بشه به news-15

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

wallfa
سه شنبه 01 مهر 1393, 17:56 عصر
خوب ببین فرآیند واقعا همین شکلیه که شما میگی و درست هم هست ! و کاملا کار بیهوده ای که شما اگر اینطوری وارد کردی برگرده به اون حالت !

شما وقتی توی سایت لینک ها تون درست بر اساس ساختار بالا ارائه بدید مشکلی ایجاد نمیکنه و به همون حالت برای مصرف کننده باقی میمونه ! و حتی گوگل هم مشکلی با این موضوع ندارد .

Weblove
سه شنبه 01 مهر 1393, 18:54 عصر
ممنون پاسخ دادید

بله میدونم که روند به همین شکل هست

الان مشکل ما سر اینه که لینک های قبلی توی گوگل ثبت شده اند

و ما می خوایم به محض ورود کاربران با آدرس news=15 یهو ریدایرکت بشن به news-15

از فلگ r=301 استفاده کردم اما بر عکس عمل می کنه
news-15 رو میبره روی news=15

Weblove
جمعه 04 مهر 1393, 06:23 صبح
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟

MMSHFE
جمعه 04 مهر 1393, 13:13 عصر
دوست عزیز، Rewrite برای اصلاح کردن آدرسهای شما نیست. فقط میگه که اگه آدرس به سبک اول وارد شد، به روش دوم تعبیرش کن. پس شما خودتون باید لینکهاتون رو اصلاح کنید. اگه میخواین عمل Redirect رو مدیریت کنید، توی htaccess. از RedirectRule استفاده کنید.

Weblove
جمعه 04 مهر 1393, 21:42 عصر
خب دوست من منم کد redirect رو می خوام
زحمتش رو بکشید لطفا

دو ساعت بالا توضیح دادم که چی می خوام دیگه

Weblove
جمعه 11 مهر 1393, 14:26 عصر
???؟؟؟
؟؟؟؟؟؟
??????

MMSHFE
شنبه 12 مهر 1393, 08:49 صبح
توی اینترنت درمورد RedirectMatch in .htaccess جستجو کنید.

Weblove
شنبه 12 مهر 1393, 11:18 صبح
مطمئنم همین واژه رو شما هم جستجو کردید و به نتیجه نرسیدید !
و گرنه گذاشتن یه خط کد نه هزینه برداره و نه مشکلی بوجود میاره

MMSHFE
شنبه 12 مهر 1393, 11:21 صبح
نه دوست عزیز اینطور نیست. شما خوب نگشتین. گذاشتن یک خط کد هزینه نداره. مشکلی هم ایجاد نمیکنه ولی قراره اینجا ماهیگیری یاد بدیم نه اینکه به همدیگه ماهی بدیم.

Weblove
شنبه 12 مهر 1393, 13:31 عصر
والا ما تو سایت های معروف خارجی دیدیم اینقدر پاسخ میدن مشکل تاپیک دهنده حل شه
البته اگه واقعا قصد کمک باشه
منم توقعی ندارم شما به عنوان یک شخص وقت بگذارید تا مشکل من حل شه
من توقع دارم این انجمن اگه برپا هست مثل قدیما مشکل برطرف کنند اگه هم قراره مشکلات برطرف نشه و فقط در حد سوالات مبتدی اینجا پاسخ داده بشه خب ببندن انجمن php رو یا بنویسند
php مبتدی ...
...
برادر ارجمندم
من این فلگ ها رو جلوی کد قرار میدم اما بر عکس ریدایرکت می کنه
یهنی
news-15
رو میبره روی
news=15


RewriteRule ^news-([0-9-]+)$ ?news=$1 [R=301,L]

MMSHFE
شنبه 12 مهر 1393, 13:57 عصر
خوب توی ریدایرکت (وقتی R میگذارین) یعنی اینکه دیگه آدرسهای اولی رو بصورت دوم تعبیر نکن بلکه کلاً کاربر رو ببر به آدرس دوم. اگه میخواین برعکس باشه باید اینطوری بنویسید:

RewriteRule ^\?news=([0-9]+)$ news-$1 [R=301,L]
یا این مدلی کار کنید:

RedirectMatch ^\?news=([0-9]+)$ news-$1
که برای کارکردن این دومی باید علاوه بر mod_rewrite توی تنظیمات Apache ماژول mod_alias رو هم فعال کنید.

MMSHFE
شنبه 12 مهر 1393, 13:57 عصر
این لینک هم بدردتون میخوره:
http://www.htaccessredirect.net

MMSHFE
شنبه 12 مهر 1393, 14:01 عصر
خوندن این لینک رو هم شدیداً توصیه میکنم:
http://searchengineland.com/url-rewrites-and-redirects-part2-16575