اگر سایت یوتیوب را هنگام سرچ دیده باشید میبینید که در آن یک یو ار ال result وجود دارد و بعد از آن method گت
تصویر سایت یوتیوب :
کد فایل .htaccess من :
Options +FollowSymLinks
RewriteEngine on
RewriteRule post/(.*)/ index.php?id=$1
RewriteRule post/(.*) index.php?id=$1
من در این جا میخوام مثلا "post/122" رو در اون صفحه ای برای پیج بندی بزارم و میخوام method گت در این جا به اون اضافه بشه
اما مشکل تازه اینجاست که شروع میشه . چون تابع گت دیگه خوانده نمیشه .
!!یو ار ال ها تستی هستند!!
سلام ، صبحتون بخیر
من توضیحات شما رو چند بار خوندم و متوجه نشدم
یعنی مثلا شما میخواید یک آدرس داشته باشید که با Method گت (Get) باشه و اطلاعاتی رو براش به عنوان URL Parameter یا URL Variable ارسال کنید
مثل نمونه زیر :
https://roocket.ir/discuss/Page?color=red&backcolor=blue
میخواید این مقادیر به اون کد شما ارسال بشه و ارش استفاده کنید درسته ؟
خب حالا شما یه صفحه دارید به نام post/123 و میخواید به این صورت باشه
post/123?id=1
یا یه صفحه دارید به نام post و میخواد به این صورت باشه
post?id=1
یعنی مثلا برو به پستی که آیدی (ID) شناسه اون پست برابر هست با یک و اون روی برای کاربر نشون بده
لطفا نمونه ایی رو که میخواید برای بنده بنویسید و یکم دقیقتر توضیح بدید
@ehsndvr
حالت دوم یعنی
post?id=123
اما در اینجا با فایل .htaccess یو ار ال ها رو friendly کردم و دیگه اینجا متود های گت خوانده نمی شوند .
کل کاری که من انجام دادم :
اول مثلا صفحه ی ایندکس پست های ما http://site.com/blog بوده حالا ما می خوایم اینجا یک متود GET بهش اضافه بشه و بشه http://site.com/blog?page=2 در اینجا باز همون صفحه ی اول رو میاره و تغییری در صفحه ایجاد نمیشه یعنی متود GET خوانده نمیشه .
اینجا دقیقا باید چیکار کنم
فایل .htaccess :
Options +FollowSymLinks
RewriteEngine on
RewriteRule site.com/(.*)/ index.php?mode=blog&?id=$1
RewriteRule site.com/(.*) index.php?mode=blog&?id=$1
فایل .htaccess که فرستادم کامل نیست اما شما خودتون کامل در نظر بگیرید .
متوجه شدم ممنون
خب اگر از همین کد ها استفاده میکنید یه جاشون مشکل داره و باید به این صورت باشه
RewriteRule site.com/(.*)/ index.php?mode=blog?id=$1
RewriteRule site.com/(.*) index.php?mode=blog?id=$1
و نحوه صدا زدن به این شکل میشه
site,com/test/index.php?mode=blog&id=123
نباید برای پارامتر های بعدی از ؟ استفاده کنید همون & کافیه
اگر اشتباه نکنم ... لطفا اینو تست کنید
ببینید وقتی شما URL Parameters رو وارد میکنید و اون مسیر رو به صورت GET صدا میزنید (مثل این مسیر : site.com/blog?page=2
) توی کدتون بررسی کنید ببینید اصلا این پارامتر ها دریافت میشه یا نه ؟
چون شما هر 2تا مسیر رو یکجا تعریف کردید ، یعنی آخرش اگر هم این URL صدا زده بشه ، فایل Index.php رو میخونه
شما این کد رو داخل Index.php بزارید و ببینید اصلا لینک شما URL Parameter داره ؟
و من دقیقا htaccess رو نمیدونم و اگر باز شما به جوابی نرسیدید بیشتر تحقیق میکنم
داخل لاراول ما میایم در قسمت Route ها یک مسیر تعریف میکنیم و یک تابع از یک Controller رو بهش اختصاص میدیم
اما داخل فایل htaccess شما ، بنده هرچی نگاه میکنم همش یک مسیر داره صدا زده میشه...
@ehsndvr
مشکلم حل شد .
باید داخل فایل .htaccess بعد از هر بازنویسی url یه [QSA] گذاشت تا متود های گت دیگه رو هم بتونه بخونه.
و ببخشید که وقتت رو هم گرفتم.
@parhamdeveloper سلام آقای ناصحی عزیز
خداروشکر که مشکلتون حل شد ، بنده یه متن بلند براتون نوشته بودم ، موقع فرستادن مرورگرم بسته شد 😂
خداهش میکنم عزیز شما هرموقع با بنده کار داشتید فقط من رو مخاطب قرار حتما میام نگاه میکنم.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟