دوستان من با استفاده از .htaccess میخواستم آدرس هامو یکم تغیر بدم.
مثلا: localhost/index.php?ctegory=daste&product=mahsol
رو به : localhost/daste/mahsol.html
تبدیل کردم. با این کد در htaccess
RewriteEngine On RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?ctegory=$1&product=$2 [L]
ولی خب به خاطر اینکه در اینجا باید به صفحه ایندکس دوتا پارامتر داد... و ممکنه بعضی وقتا یه پارمتری یا سه پارامتری به بالا باشه کار نمیکنه.
اینجوری:
localhost/index.php?ctegory=daste
localhost/index.php?product=mahsol
اینو باید چجوری تغییرش بدم؟ و اینکه حالا مثلا اگه به این آدرس localhost/index.php?ctegory=daste کاربر بره که به صورت localhost/daste باید تو آدرس بار نوشته بشه بعد از درخواست این صفحه چه کدی رو باید بنویسم که یه صفحه ای رو include کنم. یا اگر به این صفحه رفت: localhost/mahsol یه صفحه ی دیگه رو include کنم.
ممنون میشم توضیح بدید..
یه کدی هم برای htaccess پیدا کردم که اینکارو انجام میده فک کنم:
<IfModule mod_rewrite.c> <IfModule mod_env.c> SetEnv HTTP_MOD_REWRITE On </IfModule> RewriteEngine on # RewriteUrl RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L] </IfModule>
کل سوالم اینه که توی کد اولی اگر بنویسیم:
$_GET['category'] که میشه به پارامتر اولی دسترسی پیدا کنیم.
ولی توی این کد پایینی که توی htacces مشخص نشده پارامترها اگر آدرس به صورت: localhost/daste۱/kala۱ باشد پارامتر daste۱ و kala۱ چی هسش؟؟؟
تو فایل .htaccess فقط این 2تا خط زیر رو بزار:
RewriteEngine On RewriteRule ^(.*)/$ /index.php?somevar=$1 [L]
حالا آدرس ورودی هر چیزی میتونه باشه، مثلا:
example.com/var1/var2/var3/var4/
نکتش اینه که آدرس باید با / تموم بشه
چیزی هم که برای php ارسال میشه به این صورت هست:
index.php?somevar=var1/var2/var3/var4/
حالا کافیه از تابع explode استفاده کنی تا متغییرات رو جدا کنی:
$myarray = explode("/",$_GET['somevar']);
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)