رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
هدایت social crawler ها به مسیری خاص (حل شد)
#1
فکر کنم بهتر بود این مسئله رو تو تاپیک آپاچی باز میکردم، اگه مدیر صلاح دونستن منتقلش کنن.

خوب بنده یک تم برای وردپرس بوسیله angularjs ساختم و میخوام در اون امکان اشتراک مطالب بلاگ رو اضافه کنم. مشکل اینجاس که چون صفحات توسط جاوااسکریپت ساخته و مدیریت میشن، خزنده های شبکه های اجتماعی مثل فیسبوک، تویتر، گوگل، لینکداین و ... نمیتونن این نوع صفحات رو بخزند و محتوای مورد نظرشون رو بیرون بکشن(البته تا جایی که اطلاع دارم اینطوریه).
واسه همین بنده طبق این مقاله یک صفحه static-page.php ساختم و تو اون بر اساس آیدی مطلبی که بهش داده میشه میره و از وردپرس محتوای مورد نظر رو بیرون میکشه و social meta tag ها رو با اونا پر میکنه. تا اینجا مشکلی نیست. وقتی میخوام مطلبی رو با آدرسی مثل این:
https://www.facebook.com/sharer.php?u=http://myhost.com/wordpress1/blog/70/how-to-recognize/
تو فیسبوک به اشتراک بزارم، طبق توضیحی که دادم بصورت پیشفرض ربات فیسبوک نمیتونه اون صفحه رو بخونه و باید به صفحه static-page.php منتقل بشه. واسه اینکار هم، فایل .htaccess روت وردپرس رو به این شکل تغییر دادم:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress1/
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress1/index.php [L]
</IfModule>

# BEGIN Test-Themes Content

# allow social media crawlers to work by redirecting them to a server-rendered static version on the page
RewriteCond %{HTTP_USER_AGENT} facebookexternalhit/[0-9]
RewriteRule ^/?blog/(d*)/.*$ . /wordpress1/wp-content/themes/test/static-page.php?id=$1 [L]

# END Test-Themes Content

# END WordPress

همونطور که میبینید سعی کردم روبات فیسبوک رو همراه با آیدی مطلب مورد نظر به صفحه static-page.php منتقل کنم، اما وقتی تست میکنم باز هم نمیتونه چیزی رو بخونه. انگار که اصلاً به اون صفحه ای که مد نظرم بوده منتقل نمیشه. به نظرتون مشکل از چیه؟ regexp ها رو اشتباه نوشتم یا واسه اینکار به ماژولی غیر از rewrite_module نیاز هست؟ یا اصلا مشکل جای دیگه هست؟ 

خودم که دیگه مغزم نمیکشه  Huh
پاسخ
تشکر شده توسط:
#2
خوب بالاخره بعد از مدتی سردرگمی حلش کردم بدون اینکه بخوام درگیر آپاچی و اینا بشم. راه حل ساده ای هم هستش. تو فایل index.hp تم، با یه regexp آیدی مطلب رو از ادرس درخواستی از $_SERVER میگیرم بعد با کمک آیدی و فانکشن های خود وردپرس اطلاعات اون مطلب درمیارم و خیلی ساده social meta tag ها رو مقدار دهی میکنم. اینطوری به محض اینکه خزنده فیسبوک یا هرچیز دیگه ای آدرس به اشتراک گذاشته شده رو بررسی کنه تگ های مد نظرش رو با مقادیر صحیح میخونه.

خلاصه آب در کوزه بود و گرد جهان میگشتیم، از راه حلی که تو اون مقاله بود هم ساده تر بود.
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان