PDA

View Full Version : سوال: تبدیل آدرس mahsolat.php?page=2 به آدرس mahsolat/page/2



ravand
دوشنبه 07 بهمن 1392, 16:36 عصر
سلام
من میخوام با .htaccess آدرس زیر را:

http://localhost/ravand/mahsolat.php?page=2
به این ادرس :

http://localhost/ravand/mahsolat/page/2
به صورت پویا تبدیل کنم.
متشکرم.

sadegh1362
دوشنبه 07 بهمن 1392, 16:47 عصر
سلام
به این صورت بنویسید



RewriteEngine on
RewriteRule ^(.+)$ mahsolat.php?page=$1 [QSA,L]

این ساختاری که شما در url دوم نوشتید یک ساختار MVC هستش و به تنهایی نیمشه با ,htaccess این کار رو کرد .
باید فایلی داشته باشید که متغیرpage رو از url بخونه و مقدار هاش رو در تابع قرار بده
به این شکل


$url =isset($_GET['page'])?$_GET['page']:null;


$url=rtrim($url,'/');
$url=explode('/',$url);
$file= 'yourfolder/'.$url[0].'.php';
require $file;
$controller=new $url[0]();
$controller->{$url[1]}($url[2]);


در اینجا


$url[2]

همان ورودی پارامتر شماست یعنی عدد 2

foreach
دوشنبه 07 بهمن 1392, 16:52 عصر
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^mahsolat/page/([0-9])$ mahsolat.php?page=$1 [L,QSA]

ravand
دوشنبه 07 بهمن 1392, 18:09 عصر
از جواب هاتون متشکرم.
میخواستم بدونم این دو روش توی سئو فرقی هم میکنه؟

http://localhost/ravand/mahsolat.php?page=2
http://localhost/ravand/mahsolat/page/2
به نظر شما کدوم روش از نظر سئو بهتره؟
ممنون

foreach
دوشنبه 07 بهمن 1392, 18:18 عصر
از جواب هاتون متشکرم.
میخواستم بدونم این دو روش توی سئو فرقی هم میکنه؟

http://localhost/ravand/mahsolat.php?page=2
http://localhost/ravand/mahsolat/page/2
به نظر شما کدوم روش از نظر سئو بهتره؟
ممنون
روش دوم چون به محتوای صفحه اشاره کرده از نظر سئو بهتره
البته در صفحات سایت فکر نمیکنم از اهمیت بالایی برخوردار باشه

mahmod2000
دوشنبه 07 بهمن 1392, 18:38 عصر
قطعا روش دوم بهتره
چون seo friendly هست و برای crawler گوگل قابل پسندتر هستش
و اگر آخرش هم .html اضافه کنید گوگل به عنوان صفحه استاتیک میخونه صفحه شما را که برای سئو عالی هستش

ravand
دوشنبه 07 بهمن 1392, 19:19 عصر
و اگر آخرش هم .html اضافه کنید گوگل به عنوان صفحه استاتیک میخونه صفحه شما را که برای سئو عالی هستش
منظورتون چطوری هست؟ اینطوری:

http://localhost/ravand/mahsolat/page/2.htm

mahmod2000
دوشنبه 07 بهمن 1392, 19:48 عصر
http://localhost/ravand/mahsolat/page/2.html

MMSHFE
دوشنبه 07 بهمن 1392, 20:27 عصر
البته به یک نکته هم باید دقت کنید و اونهم اینه که تبدیل آدرس صفحه به یک آدرس HTML تا وقتی برای SEO خوبه که واقعاً صفحه شما پویا نباشه. منظورم اینه که اگه گوگل متوجه بشه که محتوای صفحه تغییر کرده درحالی که شما گفته بودین این یک صفحه Static هست، اونوقت حس فریب خوردگی بهش دست میده و با جریمه کردن رتبه سایتتون، از خجالت شما در میاد.

amin7x
دوشنبه 07 بهمن 1392, 21:49 عصر
البته به یک نکته هم باید دقت کنید و اونهم اینه که تبدیل آدرس صفحه به یک آدرس HTML تا وقتی برای SEO خوبه که واقعاً صفحه شما پویا نباشه. منظورم اینه که اگه گوگل متوجه بشه که محتوای صفحه تغییر کرده درحالی که شما گفته بودین این یک صفحه Static هست، اونوقت حس فریب خوردگی بهش دست میده و با جریمه کردن رتبه سایتتون، از خجالت شما در میاد.

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

mahmod2000
دوشنبه 07 بهمن 1392, 22:38 عصر
ببینید ربات گوگل کلا به html علاقه بیشتری داره
حالا طبق فرمایش جناب شهرکی اگه این html واسه صفحاتی که زیاد توش تغییری ایجاد نمیشه انجام بشه بهتره
مثل تماس با ما یا درباره ما

sh.n.n786
دوشنبه 07 بهمن 1392, 22:39 عصر
درود و ...
به این آدرس دقت کنید


http://barnamenevis.org/showthread.php?438647-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%A2%D8%AF%D8%B1%D8%B3-mahsolat.php-page-2-%D8%A8%D9%87-%D8%A2%D8%AF%D8%B1%D8%B3-mahsolat-page-2.html

گوگل این آدرس رو به عنوان صفحه استاتیک قبول نمیکنه اما در رتبه بندی به این صفحه امتیاز میده دلیلش هم اینه که با هر 2 حالت قابل شناساییه اما خود وب سایت حالت بدون HTML را به موتور جستجو معرفی کرده و حالت دوم رو به عنوان Cache نگه داشته.
فک کنم واضح گفتم.

MMSHFE
سه شنبه 08 بهمن 1392, 01:37 صبح
کلاً اگه تو آدرس ? باشه، پسوند هرچی هم باشه اون صفحه پویا درنظر گرفته میشه چون وجود پارامتر Get در صفحه معناش اینه که یه کاری باهاش قراره انجام بده. پس این صفحه، Static نیست. الگوریتم گوگل خیلی هوشمنده. برای مثال، انتظار تغییر توی صفحه تماس با ما رو خیلی کمتر از صفحه نظرات کاربران (Guest Book) داره. حالا اگه شما بیاین صفحه نظرات کاربران رو html. کنید همون اول جریمه میشین ولی اگه صفحه تماس با ما رو html. کنید درصورتی جریمه میشین که این صفحه مرتب تغییر کنه (مثلاً چند بار در یک ماه یا یک هفته). الگوریتم گوگل اینقدر هوشمنده که اگه ببینه پارامتر داره میگیره، پارامترها رو عوض میکنه ببینه خروجی تغییر میکنه یا نه و اونوقت وای بحال رتبه سایت شما اگه صفحه تغییر کنه و شما اونو به گوگل static جا زده باشین!

eshpilen
سه شنبه 08 بهمن 1392, 08:18 صبح
بنظر منکه اساسا مسخره است که بیایم و صفحات رو بر اساس موتورهای جستجو درست کنیم.
بقول یکی، سایت رو برای کاربران درست کنید، نه برای موتور جستجو!
بعد موتور جستجو خودش اونقدری هوشمند هست شعور داره که بتونه صفحات و محتویات اونا رو بقدر کافی درست تشخیص بده. نه؟
البته رعایت یکسری اصول کلی و استانداردهای عمومی که بدیهی است؛ ولی دیگه نه در این حد که بخوایم پسوند عوض کنیم و یه چیزی رو عمدا یجوری وانمود کنیم و غیره. اگر موتور جستجو قرار بود به این راحتی تحت تاثیر این ترفندها قرار بگیره که دیگه موتور جستجوی هوشمند و قابل اعتمادی نمیبود و هرکس میتونست نتایج اون رو به این شکل دستکاری کنه و فریب بده.
واقعا فکر نمیکنم فقط بخاطر دوتا پسوند و نحوهء آدرس دهی، یک صفحه ای که محتوای بدردبخوری نداره بر یک صفحه ای که محتوای درجه یک داره برتری پیدا کنه در نتایج جستجو. بالاخره هر پارامتری یک ضریبی داره. بنظر من اول خود محتوای صفحه و لینکهایی که بهش هست و لینکهایی که ازش به صفحات و سایتهای دیگر هست و اینها، ضریب بیشتری دارن.

MMSHFE
سه شنبه 08 بهمن 1392, 12:23 عصر
الگوریتمهای جدید موتورهای جستجو هم همین رو میگن. ازتون میخوان که سایتتون رو برای کاربران جذاب و البته استاندارد تولید کنید و موتورهای جستجو هم بهش نمره میدن. الگوریتم گوگل خیلی هوشمنده. برای مثال، خیلیها میومدن و کلمات پر بازدید که زیاد جستجو میشدن رو توی صفحه میگذاشتن و با CSS مخفی میکردن. بعد از یه مدت گوگل اینو فهمید و به این کار نمره منفی داد. بعد اومدن بجای اینکه مخفی کنن، رنگ مشابه و نزدیک پس زمینه بهش میدادن و سایز فونت رو ریز میکردن یا ارتفاع div و... رو کم میکردن که دیده نشه. باز گوگل اینو فهمید و نمره منفی داد. بعدش اومدن با JS و jQuery بعد از Window.load یا Document.ready عناصر رو مخفی کردن به این امید که Crawler گوگل نمیتونه کدهای JS رو اجرا کنه. گوگل هم JS Parser نوشت و کدهای JS رو تجزیه و تحلیل میکرد و این موارد رو هم تشخیص میداد. اومدن کدهای JS رو Obfuscate کردن، گوگل براش Deobfuscator نوشت. بجای اینهمه دردسر کشیدن برای فریب موتور جستجو، اگه روی محتوای سایتتون کار کنید طوری که بازدید زیاد داشته باشه، گوگل برای اعتبار خودش هم که شده، سایت پربازدید شما رو نشون میده. مگه میشه سایتی روزانه هزاران بازدید داشته باشه و گوگل اون رو معرفی نکنه و ازش خبر نداشته باشه؟ در اینصورت به اعتبار گوگل لطمه میخوره نه شما.

ravand
سه شنبه 08 بهمن 1392, 15:57 عصر
آقای sadegh1362 در پست 2 گفتن قسمت php رو هم باید تغییر بدم. ولی من نمیتونم کاریش بکنم. حداقل نمیدونم باید چیکارش بکنم.
چون کد صفحه بندی من به این صورته:

for($i=$ii;$i<$iii;$i++){
echo "<a href='?page=$i'>$i</a>";
}
یعنی باید مقداری ارسال بشه. اگه بخوام تغییرش بدم که مقداری ارسال نمیشه. مگه اینکه خود کدهای .htaccess همه ی کارها رو انجام بده.

ravand
دوشنبه 14 بهمن 1392, 16:32 عصر
دوستان هنوز مشکل من حل نشده. اگه میشه کمک کنید. مشکل اینه که من .htaccess بلد نیستم فعلا هم فرصت نکردم یاد بگیرم.
میخوام این ادرس رو :

http://localhost/ravand/mahsolat.php?page=2
به این آدرس تبدیل کنم:

http://localhost/ravand/mahsolat/page/2
امدم توی .htaccess اینو نوشتم:

RewriteRule (.+)$ mahsolat.php?page=$1 [QSA,L]
امدم اینم :

for($i=$ii;$i<$iii;$i++){
echo "<a href='?page=$i'>$i</a>";
}
به این شکل تغییر دادم:

for($i=$ii;$i<$iii;$i++){
echo "<a href='mahsolat/page/$i'>$i</a>";
}
وقتی روی دکمه کلیک میکنم اون صفحه ی مورد نظر رو نشون نمیده و وقتی روی دکمه ی دیگه ای کلیک میکنم مثلا اینطوری میشه:

http://localhost/ravand/mahsolat/page/mahsolat/page/1
در صورتی که باید به این شکل باشه:

http://localhost/ravand/mahsolat/page/1
متشکرم.