PDA

View Full Version : پیشنهادتون واسه ایجاد سئوی مناسب در yii چیست ؟



mnk_moh
سه شنبه 01 بهمن 1392, 09:35 صبح
با سلام خدمت کلیه مهندسین
فرض کنید در یک پروژه که با yii تولید میشه میخوایم لیست مثلا اعضاء یه سایت رو نمایش بدیم (این که میشه یه جدول ساده) . حالا میخوایم مثلا اطلاعات یکی از این اعضا رو ویرایش کنیم . من میخوام بجای ارسال id عضویت به اکشن update ، مثلا نام و نام خانوادگی ارسال بشه . مثل لینک زیر

example.com/profile/update/mohammadkamali.html

البته بهتره بجای نام انگلیسی از نام فارسی استفاده بشه .
حالا با توجه به اینکه ممکنه چند عضو همنام داشته باشیم ، پیشنهادتون برای پیاده سازی این چیه که بجای id نام و نام خانوادگی ارسال بشه (لینک بالا بهتر از profile/update/4.html هستش .)
فعلا کاری به دسترسی ها و .. نداریم .
آیا انجام این کار در مدیریت لینکها در فایل config.php باید انجام بشه و چطوری ؟

با تشکر

MMSHFE
چهارشنبه 02 بهمن 1392, 01:51 صبح
باید از urlManager استفاده کنید. با توجه به اینکه گفتین ممکنه چند عضو همنام داشته باشیم، توصیه من اینه که id رو هم توی آدرس دخیل کنید. مثلاً اینطوری باشه:
example.com/updateProfile/4/mohammadkamali.html
توی فایل تنظیمات main.php اینطوری بنویسید:


...
'components'=>array(
...
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'caseSensitive'=>false,
'rules'=>array(
'updateProfile/<id:\d+>/<name:.*>'=>array('profile/update', 'urlSuffix'=>'.html'),
),
),
...
),
...

البته یک فایل htaccess. هم باید توی پوشه ریشه سایتتون بگذارین با این محتوا:


# Turning on the rewrite engine is necessary for the following rules and features.
# FollowSymLinks must be enabled for this to work.
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
</IfModule>

# Unless an explicit file or directory exists, redirect all request to Yii entry script
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
</IfModule>

و ماژول mod_rewrite وب سرور Apache هم فعال باشه. حالا توی متد actionUpdate از کنترلر ProfileController میتونید اینطوری کار کنید:


public function actionUpdate($id, $name) {
...
}

و Yii خودش بطور خودکار ['GET['id_$ و ['GET['name_$ رو توی متغیرهای id$ و name$ میگذاره و برای اکشن موردنظر میفرسته.

mnk_moh
چهارشنبه 02 بهمن 1392, 07:45 صبح
بسیار عالی
ممنون مهندس . خیلی لطف کردی .
البته فکر کنم اینجوری پارامتر name دیگه به کار نیاد و همون id بدرد میخوره .

مهندس خدا خیرت بده .

mohsen_31369
چهارشنبه 02 بهمن 1392, 10:05 صبح
فکر کنم برای صفحه ی ویرایش کاربر نیاز به این کارا و سئو به این حد نیست!!!
چون این صفحه فقط برای کاربرای عضو شده به نمایش در می آید. و گوگل هم به عنوان یه کاربر مهمان به سایت ما سر میزنه. نه به عنوان یک مهمان.
صفحاتی که دارای محتوا می باشند ( خبر، محصول، مقاله، ... ) و صفحات واسط آنها نیاز به این جور کارا دارن.

MMSHFE
چهارشنبه 02 بهمن 1392, 20:36 عصر
URLهای خوب و UserFriendly فقط برای موتورهای جستجو مؤثر نیستن. وقتی کاربران راحتتر لینکهای سایتتون رو حفظ کنن و بتونن بهتر با سایتتون ارتباط برقرار کنن، بیشتر توی سایت باقی میمونن و این یعنی افزایش رتبه الکسا. بطور کلی وقتی میشه به این راحتی توی Yii لینکهای زیبا تولید کرد، چرا اینکار رو نکنیم؟

afee1990
چهارشنبه 02 بهمن 1392, 21:35 عصر
به این صورت هم میتونی استفاده کنی. مثلن آدرست اینجوری باشه:

http://example.com/updateprofile/10-mohammad-mohammadi.html
در این صورت بخش آخر آدرس رو بریز تو یه متغیر و به int تبدیلش کن، به همین راحتی میتونی از عدد 10 که همون id کاربره رو از آدرس استحراج کرده و استفاده کنی.