PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : پشتیبانی و فارسی کردن آدرس ها در WHMCS [ SEO Friendly URLs ]



T.Toosi
September 14th, 2017, 20:18
باسلام، متاسفانه به دلیل عدم پشتیبانی SEO Friendly URLs از زبان فارسی در WHMCS امکان بهینه سازی آدرس ها نیست، همچنین چون به دلیل Core Class و کد بودن آن امکان دسترسی و ادیت آن هم نیست به همین دلیل روشی آماده کردیم که با چند مرحله ساده میتوانید Pattern دلخواه و آدرس بهینه همراه با پشتیبانی از زبان فارسی بسازید.

ابتدا فایل .htaccess را باز کنید و اگر از دستور شرطی <IfModule mod_rewrite.c> استفاده شده بعد از آن (یا قبل از بسته شدن </IfModule>) قرار دهید :


RewriteRule ^post\/(\d+)(\/(.*))?$ announcements.php?id=$1 [L]

پترن ما به شکل زیر خواهد بود :



https://www.faranevis.com/post/17/آموزش-بهینه-سازی-آدرس/


سپس به پوشه قالب خود مراجعه کرده و فایل announcements.tpl را باز کنید و در المان های HTML آن دنبال تگ های a باشید که آدرس آن ها معمولا به شکل های زیر قرار گرفته است :



{$smarty.server.PHP_SELF}?id={$announcement.id}
{if $seofriendlyurls}{$WEB_ROOT}/announcements/{$announcement.id}/{$announcement.urlfriendlytitle}.html{else}{$smart y.server.PHP_SELF}?id={$announcement.id}{/if}


بعد از پیدا کردن تگ ها آدرس آن ها را به شکل زیر تغییر دهید :



<a href="/post/{$announcement.id}/{$announcement.title|replace:' ':'-'}">


برای بهینه سازی آدرس ها در بالا با استفاده از متد Replace در اسمارتی Whitespace ها را با - در آدرس جایگزین کردیم و در آخر فایل را ذخیره کنید.

همچنین اگر نیاز دارید در یک قسمت از قالب خود لیست اخبر ها را با URL پترن بهینه شده به قالب پاس دهید، یک فایل با نام news.php در مسیر includes/hooks بسازید و داخل آن قرار دهید :


use Illuminate\Database\Capsule\Manager as Capsule;
function hook_footerAnnouncements($vars){

$output = null;
$data = Capsule::table('tblannouncements')
->select('*')
->where('published', '=', 1)
->limit('7')
->orderBy('date', 'desc')
->get();

foreach($data as $new) {
$id = $new->id;
$date = $new->date;
$title = $new->title;
$titleU = str_replace(' ', '-', $title);
$announcement = $new->announcement;
$date = fromMySQLDate($date);
$output .= '<li><a href="/post/'.$id.'/'.$titleU.'/"><i class="material-icons">panorama_fish_eye</i> '.$title.'</a></li>';
}
return array("footerannouncements" => $output);
}
add_hook("ClientAreaPage", 1, "hook_footerAnnouncements");

همکنون در در قالب خود میتوانید با اضافه کردن {footerannouncements} لیست آخرین اخبار ها را با SEO Friendly URLs نمایش دهید.

همچنین با ماژول نقشه سایت داینامیک همراه با لینک دستی [ WHMCS Sitemap ] که به صورت رایگان توسط فرانویس منتشر شده است می توانید WHMCS خود را به صورت قوی SEO کنید.


http://www.webhostingtalk.ir/showthread.php?t=191171

T.Toosi
September 14th, 2017, 22:57
باسلام، یکی دیگر از مشکلات WHMCS عدم نمایش Title اخبار در هید صفحه است، اگر از پترن بالا در آدرس های خود استفاده می کنید از هوک زیر می توانید استفاده کنید :


function hook_AnnouncementsTitle($vars){
$newsTitle = false;
foreach( explode('/', $_SERVER['REQUEST_URI']) as $dir ) {
if( $dir === "post" ) {
$newsTitle = $vars['title'];
break;
}
}
return ['newsTitle' => $newsTitle];
}
add_hook("ClientAreaPage", 1, "hook_AnnouncementsTitle");

فایل header.tpl قالب خود را باز کنید و تگ title در هید خود را جایگزین کنید :


<title>{if $kbarticle.title}{$kbarticle.title} - {/if}{if $newsTitle}{$companyname} - {$newsTitle}{else}{$companyname} - {$pagetitle}{/if}</title>

mandana32
October 20th, 2017, 13:11
سلام

من زدم ارور ۴۰۴ میده

mandana32
October 20th, 2017, 17:09
امکانش هست راهنمایی کنید که مشکل از چیه ارور ۴۰۴ میده ؟

دقیقا طبق فرمایش شما پیش رفتم

T.Toosi
October 20th, 2017, 17:50
امکانش هست راهنمایی کنید که مشکل از چیه ارور ۴۰۴ میده ؟

دقیقا طبق فرمایش شما پیش رفتم

سلام، نمونه کد های بالا فقط برای announcements های whmcs هست، مرحله اول را دوباره بررسی و با دقت انجام دهید.

mandana32
October 20th, 2017, 21:07
سلام، نمونه کد های بالا فقط برای announcements های whmcs هست، مرحله اول را دوباره بررسی و با دقت انجام دهید.

بله برای WHMCS انجام دادم

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

احساس میکنم مشکل از این بخش هست

آدرس اخبار ها تغییر می کنند اما وقتی میزنم ارور ۴۰۴ می دهد

ashadata
October 27th, 2017, 12:40
انجام دادم اما ارور 404 میده :71:

- - - Updated - - -



برای رفع ارور 404 باید در فایل .htaccess بعد از # Announcements کد

RewriteRule ^post\/(\d+)(\/(.*))?$ announcements.php?id=$1 [L]

را وارد نماییم

mandana32
October 30th, 2017, 03:27
انجام دادم اما ارور 404 میده :71:

- - - Updated - - -


برای رفع ارور 404 باید در فایل .htaccess بعد از # Announcements کد

RewriteRule ^post\/(\d+)(\/(.*))?$ announcements.php?id=$1 [L]

را وارد نماییم


سلام

ممنون از شما

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


# Announcements
RewriteRule ^post\/(\d+)(\/(.*))?$ announcements.php?id=$1 [L]


زدم بازم حل نشد

- - - Updated - - -

فک کنم به خاطر مسیر whmcs باشه

مسیر نصبی من به این صورت هست :

https://domain.com/whmcs

لطفا اگر کد روی این حالت تغییر می کند بهم بگید

T.Toosi
October 30th, 2017, 13:33
فک کنم به خاطر مسیر whmcs باشه

مسیر نصبی من به این صورت هست :

https://domain.com/whmcs

لطفا اگر کد روی این حالت تغییر می کند بهم بگید

سلام، محتوای فایل .htaccess در پوشه whmcs اینجا قرار بدهید.

fido8
November 1st, 2017, 00:11
باسلام، متاسفانه به دلیل عدم پشتیبانی SEO Friendly URLs از زبان فارسی در WHMCS امکان بهینه سازی آدرس ها نیست، همچنین چون به دلیل Core Class و کد بودن آن امکان دسترسی و ادیت آن هم نیست به همین دلیل روشی آماده کردیم که با چند مرحله ساده میتوانید Pattern دلخواه و آدرس بهینه همراه با پشتیبانی از زبان فارسی بسازید.

ابتدا فایل .htaccess را باز کنید و اگر از دستور شرطی <IfModule mod_rewrite.c> استفاده شده بعد از آن (یا قبل از بسته شدن </IfModule>) قرار دهید :


RewriteRule ^post\/(\d+)(\/(.*))?$ announcements.php?id=$1 [L]

پترن ما به شکل زیر خواهد بود :



https://www.faranevis.com/post/17/آموزش-بهینه-سازی-آدرس/


سپس به پوشه قالب خود مراجعه کرده و فایل announcements.tpl را باز کنید و در المان های HTML آن دنبال تگ های a باشید که آدرس آن ها معمولا به شکل های زیر قرار گرفته است :



{$smarty.server.PHP_SELF}?id={$announcement.id}
{if $seofriendlyurls}{$WEB_ROOT}/announcements/{$announcement.id}/{$announcement.urlfriendlytitle}.html{else}{$smart y.server.PHP_SELF}?id={$announcement.id}{/if}


بعد از پیدا کردن تگ ها آدرس آن ها را به شکل زیر تغییر دهید :



<a href="/post/{$announcement.id}/{$announcement.title|replace:' ':'-'}">


برای بهینه سازی آدرس ها در بالا با استفاده از متد Replace در اسمارتی Whitespace ها را با - در آدرس جایگزین کردیم و در آخر فایل را ذخیره کنید.

همچنین اگر نیاز دارید در یک قسمت از قالب خود لیست اخبر ها را با URL پترن بهینه شده به قالب پاس دهید، یک فایل با نام news.php در مسیر includes/hooks بسازید و داخل آن قرار دهید :


use Illuminate\Database\Capsule\Manager as Capsule;
function hook_footerAnnouncements($vars){

$output = null;
$data = Capsule::table('tblannouncements')
->select('*')
->where('published', '=', 1)
->limit('7')
->orderBy('date', 'desc')
->get();

foreach($data as $new) {
$id = $new->id;
$date = $new->date;
$title = $new->title;
$titleU = str_replace(' ', '-', $title);
$announcement = $new->announcement;
$date = fromMySQLDate($date);
$output .= '<li><a href="/post/'.$id.'/'.$titleU.'/"><i class="material-icons">panorama_fish_eye</i> '.$title.'</a></li>';
}
return array("footerannouncements" => $output);
}
add_hook("ClientAreaPage", 1, "hook_footerAnnouncements");

همکنون در در قالب خود میتوانید با اضافه کردن {footerannouncements} لیست آخرین اخبار ها را با SEO Friendly URLs نمایش دهید.

همچنین با ماژول نقشه سایت داینامیک همراه با لینک دستی [ WHMCS Sitemap ] که به صورت رایگان توسط فرانویس منتشر شده است می توانید WHMCS خود را به صورت قوی SEO کنید.


http://www.webhostingtalk.ir/showthread.php?t=191171



امکان استفاده برای knowledge base هم وجود داره ؟

T.Toosi
November 1st, 2017, 00:26
امکان استفاده برای knowledge base هم وجود داره ؟

باسلام، بله، باید با هم الگوی بالا برای knowledge ادیت کنید.