راکت

پاک شدن کوئری از آدرس در فایل htaccess در زبان php

13 پاسخ

سلام خدمت دوستان
چطور میتونم url های صفحمو مدیریت کنم در داخل فایل htaccess ، برای مثال یک آدرس دارم برای نمایش جزئیات یک بلاگ به این صورت
blog-details?title=Nature-mattress-features-for-health
و من میخواهم به این صورت تغییر پیدا کنه
blog-details/Nature-mattress-features-for-health

ثبت پرسش جدید

پاسخ‌ها

13
بامداد
بامداد
@bamdad

پروژت در MVC هست ؟

فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

شاید پاسخ شما همین‌جا باشد

بامداد
بامداد
@bamdad

تو php خام وقتی بک اسلش میزنی بعدش یا فولدر هست یا فایل
پس بعد از اون باید یا فولدر داشته باشی یا فایل
و QueryString رو هم در ادامش

فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

@bamdad
فکر کنم سئوال رو متوجه نشدید
آدرس همین صفحه رو ببینید در واقع میخوام شبیه همین باشه
آدرس من اینجوری نوشته شده
blog-details?title=Nature-mattress-features-for-health
title نامک بلاگ من هست و در واقع حکم آیدی رو داره واسه هر بلاگ و میخوام آدرس صفحه تبدیل بشه به این صورت
blog-details/Nature-mattress-features-for-health

بامداد
بامداد
@bamdad

خب تو آیدی های مختلفی داری درسته ؟ به هر حال در URL معلوم کنی که کدام ID باید فراخوانی بشه وگرنه نمیشه کلا حذفش کنی
ولی میتونی اینطوری کنی
blog-details/title/Nature-mattress-features-for-health

که باید فایل یا فولدر بسازی

فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

@bamdad
داداشم شما چیز دیگه ای رو داری‌توضیح میدی اصلا ربطی ندارن بهم دیگ به هرحال ممنونم ک وقت گذاشتی.

علی
علی
@Alitavil

خوب باید یک قانون درست کنی براش توی فایل htaccess

مثلا برای این لینکت

blog-details?title=Nature-mattress-features-for-health

باید کد زیر رو استفاده کنی

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)$  blog-details.php?title=$1 [NC]

استفاده کنی

کافیه فایلت رو اینجوری صدا بزنی

blog-details/Nature-mattress-features-for-health
فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

@Alitavil
از نظر ساختاری به نظر درست هست کد های شما ولی متاسفانه بازم جواب نداد بهم ، نمیدونم مشکل از چیه!!!!

فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

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

علی
علی
@Alitavil

خوب اینی که من گذاشتم برای نمونه بود باید نسبت به کدهات یه تغییرات کوچیکی توش بدید چون خودتون بهتر از نوع کدهاتون خبر دارید

فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

@Alitavil
من تجربه زیادی ندارم نمیدونم دقیق چیو باید تغییر بدم ، اگر منظورتون کدی هست که واسه فرا خوانی بلاگ به این صورته

<? blog-details?title<?= $item->title >

رضا
رضا
@rezajahan

تخصص: Back-End developer

www.test.com/blog/titel/1/2
وقتی بخوای uri به این صورت نمایش داده بشه باید یه سیستم routing برای پروژت درست کنی . اولین کاری که باید انجام بدی داخل فایل htaccess بگی که هر خواستی از سمت کاربر اومد هدایت بشه به index.php
داخل index توسط REQUEST_URI در خواست کاربر رو بگیری و مدیریت کنی
برای مثال می گم داخب uri که بالا نوشتم blog داره اشاره می کنه به یک کلاس و title یک متد از کلاس بلاگ هست و 1 ، 2 پارامتر های ورودی اون متد هستن

علی
علی
@Alitavil

@farshid.moradi199658

این یک نمونه کلی هست حالا هر چند تا پیج داشته باشی میتونی توی این کد جایگزین کنی تا حدودی که حدس میزدم برات تکمیل کردم


RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^users/(.*)*$ ./profile.php?username=$1
RewriteRule ^blog-details/(.*)*$ ./blog-details.php?title=$1

RewriteRule ^search/(.*)$ ./search.php?query=$1

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام