ایجاد لینکهایی بدون استفاده از کاراکترهای . & ? =

idocs

Member
لینکهای سایت من بصورت زیر هستن

HTML:
 http://mysite.com/index.php?id=1&name=name

چطور می تونم امکانی بوجود بیارم که لینکهای سایت توی آدرس بصورت زیر نمایش داده بشن؟

HTML:
 http://mysite.com/index/id/1/name/name

لطفا بصورت کامل توضیح بدید.
 

sharktech

کاربر فعال
با استفاده از htaccess میتونین این کار رو انجام بدین.

کد htaccess :

کد:
RewriteEngine On
RewriteRule ^index/id/([^/]*)/name/([^/]*)$ /index.php?id=$1&name=$2 [L]
 

idocs

Member
با استفاده از htaccess میتونین این کار رو انجام بدین.

کد htaccess :

کد:
rewriteengine on
rewriterule ^index/id/([^/]*)/name/([^/]*)$ /index.php?id=$1&name=$2 [l]

چطور باید سرور رو برای این کار تنظیم کنم ؟


اگه می شه یا توضیح کامل برام بفرستید.
 

sharktech

کاربر فعال
این فایل رو که زمیمه کردم رو دانلود کن و در کنار فایل index.php آپ کنم (البته بعد از اکسترکت!).

و به جای اینکه لینکت رو اینطوری نمایش بدی :

کد:
http://mysite.com/index.php?id=1&name=name
به این صورت نمایش بده :

کد:
http://mysite.com/index/id/1/name/name
البته جاهای متغییر لینک رو هم که باید تغییر بدی.
 

پیوست ها

  • a.zip
    192 بایت · بازدیدها: 9

idocs

Member
این فایل رو که زمیمه کردم رو دانلود کن و در کنار فایل index.php آپ کنم (البته بعد از اکسترکت!).

و به جای اینکه لینکت رو اینطوری نمایش بدی :

کد:
http://mysite.com/index.php?id=1&name=name
به این صورت نمایش بده :

کد:
http://mysite.com/index/id/1/name/name
البته جاهای متغییر لینک رو هم که باید تغییر بدی.

چندتا سوال پیش می یاد برام.

چه کدی باید توی فایل index.php قرار بدم ؟

اگر کاربر آدرس یه فایل که توی سرور موجود نبود رو وارد کنه چه اتفاقی می افته؟

این روش چه مه مزیتهایی داره و به چه دلیل از این روش استفاده می شه؟
 

phpweb

Active Member
این فایل رو که زمیمه کردم رو دانلود کن و در کنار فایل index.php آپ کنم (البته بعد از اکسترکت!).

و به جای اینکه لینکت رو اینطوری نمایش بدی :

کد:
http://mysite.com/index.php?id=1&name=name
به این صورت نمایش بده :

کد:
http://mysite.com/index/id/1/name/name
البته جاهای متغییر لینک رو هم که باید تغییر بدی.

فرض کنید که بخوام تمام صفحات سایت رو به این صورت در بیاریم و هر صفحه ممکنه که متغیرهای نامشخصی (متغیرهایی که در آرایه گت ذخیره می شن) داشته باشه، در این صورت چه کدی باید استفاده کنیم؟

لطفا یه کد جامع که در هر شرایطی کار کنه، معرفی کنید. توی این کد جدید مسائل امنیتی باید مد نظر گرفته بشن.
 

ziXet

مدیر انجمن PHP/MYSQL
فرض کنید که بخوام تمام صفحات سایت رو به این صورت در بیاریم و هر صفحه ممکنه که متغیرهای نامشخصی (متغیرهایی که در آرایه گت ذخیره می شن) داشته باشه، در این صورت چه کدی باید استفاده کنیم؟

لطفا یه کد جامع که در هر شرایطی کار کنه، معرفی کنید. توی این کد جدید مسائل امنیتی باید مد نظر گرفته بشن.
باید برای هرکدوم تک تک rule تعریف کنید
 

phpweb

Active Member
باید برای هرکدوم تک تک rule تعریف کنید

با توجه به اینکه از عبارات با قاعده می تونیم استفاده کنیم، می شه بجای تعریف تک تک rule برای فایلها، نتغیرها و پوشه های مختلف، از یه عبارت باقاعاده که همه این کارها رو برامون انجام می ده استفاده کنیم؟
 

Masoud1365

مدیر انجمن
برای این کار شما باید یه روتر طراحی کنید که آدرس رو اول منظم کنه بعد به شک مطلوب مورد نظر ما در بیاره بعد هم دیگه همین !
 

phpweb

Active Member
برای این کار شما باید یه روتر طراحی کنید که آدرس رو اول منظم کنه بعد به شک مطلوب مورد نظر ما در بیاره بعد هم دیگه همین !

من تا حالا با متدهای آپاچی کار نکردم، امکانش هست یه نمونه کد برام ارسال کنید؟


مسئله بعدی موارد امنیتی هست، مثلا اگه آدرس یه صفحه که وجود نداشت یه اسکریپت ارسال بشه، در این موارد چه راهکاری وجود داره؟
 

Masoud1365

مدیر انجمن
در شرایط فعلی یادگیری روتر بهتره.

لطفا یه مثال در مورد روتر بزنید.

شما اگر از MVC برای سیستمتون استفاده کنید خوب هست ! روتر میاد چیکار میکنه میاد هدایت میکنه یعنی چی ؟
مثلا آدرس زیر رو ببینید :
test.com/news/show/1
تعریف میکنید که این آدرس یعنی کنترلر news تابع : show و مقدار 1 به تابع show پاس میشه !
اون صفحاتی رو هم که پیدا نکرد هدایت میکنید به یه صفه 404 ! :wink:
 

phpweb

Active Member
شما اگر از mvc برای سیستمتون استفاده کنید خوب هست ! روتر میاد چیکار میکنه میاد هدایت میکنه یعنی چی ؟
مثلا آدرس زیر رو ببینید :
Test.com/news/show/1
تعریف میکنید که این آدرس یعنی کنترلر news تابع : Show و مقدار 1 به تابع show پاس میشه !
اون صفحاتی رو هم که پیدا نکرد هدایت میکنید به یه صفه 404 ! :wink:

من تا حالا یه صفحه 404 ایجاد نکردم. چه محتویاتی باید توی این صفحه قرار داد و کجا (توی چه پوشه ای) باید ذخیرش کرد؟
 

phpweb

Active Member
اگر که cpanel دارید که توی اون قسمت میتونید تعریف کنید !

من دارم روی سیستم خودم سایت رو تست می کنم و به سی پنل دسترسی ندارم.

محتویات فایل 404 چی باید باشه؟ چه اسم و چه پسوندی باید داشته باشه؟
 

Masoud1365

مدیر انجمن
من دارم روی سیستم خودم سایت رو تست می کنم و به سی پنل دسترسی ندارم.

محتویات فایل 404 چی باید باشه؟ چه اسم و چه پسوندی باید داشته باشه؟

یه صفحه معمولی که به کاربر یه پیغام میده که مثلا این صفحه موجود نیست ! شما اگر ز کنترل خطا در برنامه استفاده کنید راحت 404 رو میتونید تشخیص بدید اگر هم نه که کلا برنامه رو بنویسید بعدش داخل cpanrl صفحه 404 رو بسازید که اگر آدرسی رو پیدا نکرد مثلا یه پیغامی رو نشون بده !
 

phpweb

Active Member
یه صفحه معمولی که به کاربر یه پیغام میده که مثلا این صفحه موجود نیست ! شما اگر ز کنترل خطا در برنامه استفاده کنید راحت 404 رو میتونید تشخیص بدید اگر هم نه که کلا برنامه رو بنویسید بعدش داخل cpanrl صفحه 404 رو بسازید که اگر آدرسی رو پیدا نکرد مثلا یه پیغامی رو نشون بده !

ایجاد یه صفحه با محتویاتی که به کاربر یه پیام نشون بده که کاری نیست، اما از نظر اصول سئو چه چیزی باید توی فایل قرار داد و فایل رو باید با چه اسم و پسوندی ذخیره کرد؟
 

Masoud1365

مدیر انجمن
باید با هد 404 بفرستید اما اگر توی cpanel درست کنید حودش همه کار میکنه واستون شما فقط از cpanel همون صفحه رو میسازید
 

Milad

Well-Known Member
ایجاد یه صفحه با محتویاتی که به کاربر یه پیام نشون بده که کاری نیست، اما از نظر اصول سئو چه چیزی باید توی فایل قرار داد و فایل رو باید با چه اسم و پسوندی ذخیره کرد؟
عموما با اسم 404 با notfound و پسوند php ذخیره میکنند . بالای صفحه باید این هدر رو قرار بدید :

PHP:
header('HTTP/1.1 404 Not Found');
میتونید تو Cpanel تنظیمش کنید ، اگر از Cpanel هم استفاده نمیکنید توی فایل .htaccess کد زیر رو قرار بدید .

PHP:
ErrorDocument 404 /notfound.php
و به جای notfound.php اسم فایل یا محل دقیقش رو قرار بدید .
 

جدیدترین ارسال ها

بالا