PDA

View Full Version : سوال: ایجاد لینکهای سازگار با سئو با قابلیت انتخاب یا لغو این ویژگی توسط مدیر



i-php-i
یک شنبه 11 اردیبهشت 1390, 12:59 عصر
وقتی بخوایم لینکهای سازگار با سئو ایجاد کنیم باید از یه کد شبیه کد زیر استفاده کنیم.


RewriteRule ^test/([0-9]+)/([a-z0-9]+)$ test.php?id=$1&name=$2 [NC,L]


اگر از این ویژگی استفاده کنیم و بخوایم لینکها رو توی صفحات اچ تی ام ال بصورت ثابت قرار بدیم یا بخوایم به کمک پی اچ پی لینکها رو نمایش بدیم، طبیعتا باید از فرمت زیر استفاده کنمیم.


<a href="test/1/2">click</a>

اگر بخوایم این امکان رو ایجاد کنیم که مدیر بتونه این ویژگی ( لینکهای سازگار با سئو ) رو غیر فعال کنه. در این صورت لینکهای سایت باید فرمت زیر رو به خودشون بگیرن.

<a href="test.php?id=1&name=2">click</a>

مشکل اینجاست که توی صفحات اچ تی ام ال به دلیل استاتیک بودن نمی تونیم لینکها رو تغییر بدیم و توی فایلهای پی اچ پی هم باید از کد نویسی بیشتری استفاده کنیم.

شما چطور این مشکل رو حل می کنید؟

binyaft
یک شنبه 11 اردیبهشت 1390, 13:25 عصر
اگه بتونی یه تابع تعریف کنی که لینک بسازه با یه مقدار true , false میتونی لینک رو به صورت بهتری کنترل کنی !

i-php-i
یک شنبه 11 اردیبهشت 1390, 16:54 عصر
اگه بتونی یه تابع تعریف کنی که لینک بسازه با یه مقدار true , false میتونی لینک رو به صورت بهتری کنترل کنی !

این فقط یه تابع نیست، باید به پایگاه داده هم وصل شد تا تنظیماتی که مدیر سایت انتخاب کرده رو بدست بیارم و بر اساس اون، لینکها رو نمایش بدیم.

روش اصولی همین ها هستند ؟ منظورم اینه که راهی نیست که به دیتابیس وصل نشد یا ....

xoogle.ir
یک شنبه 11 اردیبهشت 1390, 17:29 عصر
اگر وضعیت لینک ها رو (که توسط ادمین تعیین شده) رو در دیتابیس ذخیره کنی ناچاری که برای استعلام وضعیت به دیتابیس متصل بشی اما اگر مثلا در فایل ذخیره کنی خب در این صورت باید محتویات فایل رو بخونی.
ولی راهش ساختن یک تابع برای لینک ها هست.

binyaft
یک شنبه 11 اردیبهشت 1390, 17:30 عصر
چه تنظیماتی !؟

یه سری پارامتر ها هست که اگر غیر فعال باشن به صورت زیر نمایش داده میشن !


?name=reza&id=12

i-php-i
یک شنبه 11 اردیبهشت 1390, 18:05 عصر
اگر وضعیت لینک ها رو (که توسط ادمین تعیین شده) رو در دیتابیس ذخیره کنی ناچاری که برای استعلام وضعیت به دیتابیس متصل بشی اما اگر مثلا در فایل ذخیره کنی خب در این صورت باید محتویات فایل رو بخونی.
ولی راهش ساختن یک تابع برای لینک ها هست.

جوملا رو که نگاه کنیم، می بینیم که احتیاج به کپی کردن فایل htaccess.txt و تغییر پسوند اون داره.

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

i-php-i
یک شنبه 11 اردیبهشت 1390, 18:09 عصر
چه تنظیماتی !؟

یه سری پارامتر ها هست که اگر غیر فعال باشن به صورت زیر نمایش داده میشن !


?name=reza&id=12

یه مسئله که هست اینه که استفاده لینکهای سازگار با سئو به نوعی باعث می شه که هر صفحه از سایت دارای دو آدرس بشه و می دونید که گوگل این رو به عنوان نمره منفی در نظر می گیره.

مثلا اگر بازدید کننده هر کدوم از دو آدرس زیر رو تایپ کنه، وارد یه صفحه می شه.



test.php?name=reza&id=12

test/reza/12


راهی نیست که این مشکل رو حل کرد، یعنی این صفحات رو به لینک سئوی خودشون ریدایرکت کرد؟ لطفا توضیح بدید.

binyaft
یک شنبه 11 اردیبهشت 1390, 18:24 عصر
میشه با header هم ریدایرکت کرد !
با htaccess هم میشه!

i-php-i
یک شنبه 11 اردیبهشت 1390, 19:13 عصر
میشه با header هم ریدایرکت کرد !
با htaccess هم میشه!

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

با توجه به این مسئله، بهتر نمی دونید که بجای نوشتن کدهایی شبیه به کد زیر، فقط از ریدایرکت استفاده کنیم؟ چون چه از کد زیر استفاده کنیم، چه استفاده نکنیم، حتما باید از ریدایرکت کردن استفاده کنیم.

نظر شما چیه؟

binyaft
یک شنبه 11 اردیبهشت 1390, 19:30 عصر
کدوم کد زیر !؟ :لبخند:

منظورتو نگرفتم!

i-php-i
یک شنبه 11 اردیبهشت 1390, 20:40 عصر
کدوم کد زیر !؟ :لبخند:

منظورتو نگرفتم!

شرمنده یادم رفت کد رو قرار بدم. پست اصلاح شده رو در ادامه قرار دادم:
-------------------------------------------------------------------

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

با توجه به این مسئله، بهتر نمی دونید که بجای نوشتن کدهایی شبیه به کد زیر، فقط از ریدایرکت استفاده کنیم؟ چون چه از کد زیر استفاده کنیم، چه استفاده نکنیم، حتما باید از ریدایرکت کردن استفاده کنیم.


RewriteRule ^test/([0-9]+)/([a-z0-9]+)$ test.php?id=$1&name=$2

نظر شما چیه؟

binyaft
یک شنبه 11 اردیبهشت 1390, 20:46 عصر
نه خب باید کد htaccess هم باشه!

بالاخره apache باید بدونه چیرو با چی عوض کنه یا نه!؟

i-php-i
یک شنبه 11 اردیبهشت 1390, 21:52 عصر
نه خب باید کد htaccess هم باشه!

بالاخره apache باید بدونه چیرو با چی عوض کنه یا نه!؟

اگر فایل htaccessجوملا رو دیده باشید، می بینید که تنظیمات این بخشش یه خط هست !

بنظرتون بغیر از htaccessراه دیگه ای هست که اینکار رو کرد؟

binyaft
یک شنبه 11 اردیبهشت 1390, 21:59 عصر
آره با خود پی اچ پی میشه!
اون یه خط چیه !؟

رضا قربانی
یک شنبه 11 اردیبهشت 1390, 22:24 عصر
آره با خود پی اچ پی میشه!
اون یه خط چیه !؟
دستورات htaccess هست که آدرس رو تغییر می ده

مثلا

www.fffff.com/test/15/name (http://www.fffff.com/test/name)

i-php-i
یک شنبه 11 اردیبهشت 1390, 23:53 عصر
آره با خود پی اچ پی میشه!
اون یه خط چیه !؟

کل بخش بهینه سازی جوملا رو در در اینجا قرار دادم. می بینید که با یه کد ساده، لینکهای سایت رو بهینه کردن. می شه بگید توی این کد چه اتفاقی افتاده؟


########## Begin - Joomla! core SEF Section
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#
########## End - Joomla! core SEF Section

i-php-i
یک شنبه 11 اردیبهشت 1390, 23:55 عصر
دستورات htaccess هست که آدرس رو تغییر می ده

مثلا

www.fffff.com/test/15/name (http://www.fffff.com/test/name)

بحث ما اینه که دستورات فایل htaccessباعث می شه که در اصل، هر صفحه دو لینک داشته باشه و این از نظر گوگل نمره منفی داره. چون گوگل باید هر صفحه رو دو بار ایندکس کنه.

به این دلیل می خوام که راههای دیگه بغیر از htaccess رو هم پیدا کنم. البته ظاهرا بهتره که از ریدایرکت هم استفاده نشه.

نظر شما چیه؟