مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

m_livani

عضویت از 1396/02/06

سوالی درمورد آدرس دهی

  • چهارشنبه 6 اردیبهشت 1396
  • 18:44
تشکر میکنم



دوستان من با استفاده از .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۱ چی هسش؟؟؟

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

alimokarian

عضویت از 1396/02/19

  • سه شنبه 19 اردیبهشت 1396
  • 11:07

تو فایل .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']);

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)