سلام
دوستان زمانی که توی سایت من آدرسی که وجود نداره تایپ میشه سایت اتومات صفحه اصلی سایت رو میاره اما توی تب بالای مرورگر مینویسه page not found.میخوام بدونم دلیل این چیه و خوبه یا نه؟ همچنین بهترین راه برای سعو سایت از نظر صفحات 404 چیه؟تشکر
نمایش نسخه قابل چاپ
سلام
دوستان زمانی که توی سایت من آدرسی که وجود نداره تایپ میشه سایت اتومات صفحه اصلی سایت رو میاره اما توی تب بالای مرورگر مینویسه page not found.میخوام بدونم دلیل این چیه و خوبه یا نه؟ همچنین بهترین راه برای سعو سایت از نظر صفحات 404 چیه؟تشکر
دوستان تشکر از شما سایتم وردپرسه
از page.php کپی بگیرید اسمشو تغغیر بدین به 404.php به جای تابع the_content هر متنی دلتون خواست بنویسید و به جای the_title بازم هرچی دلتون خواست بنویسید.
مثلا: the_title(); جایگزین بشه یافت نشد!
و the_content یک عکس اپلود کنید مرتبط با 404 یا متن "مورد درخواستی شما یافت نشد"
می تونید فایل page.php دانلود کنید اسمش و تغییر بدین مجدد اپلود کنید داخل هاست
اگر سئو سایت براتون اهمیت داره از افزونه ریدایرکت استفاده کنید ولی اگر صرفا صفحه 404 الویت هست از روش بالا استفاده کنید.
بهتون پشنهاد می کنم هیچ وقت ارور های 404 به صفحه اصلی سایت هدایت نکنید سعی کنید به صورت رندمی به پست های جدید یا قدیمی ریدایرکت کنید.
افزونه پشنهاد میشه : thefoxe.com/products/404-to-301
چک کنید response header رو. اگه 404 باشه مشکلی نداره
ممنون از شما.منظورتون ازresponse header چیه؟
به این سایت برید
httpstatus.io
بعد آدرس صفحه رو بزنید HTTP Response رو میگه که چیه
باید 404 باشه
ببینید ممکنه اول یه 404 بده بعد 30x بده
این باشه اوکیه
اما اگه از همون اول 30x بده مشکل ساز میشه
آقا ببخشید بازم یه سوال.من کارایی که فرمودین رو انجام دادم.الان زمانی که آدرس اشتباه وارد میشه به صفحه اصلی ریدایرکت نمیشه و ارور پیدا نکردن صفحه که مال خود مرورگر کروم هست نشون داده.میخواستم بدونم عبارت the_title(); باید جایگزین کنم یا این تیکه the_title رو جایگزین کنم؟تشکر
page.php
کد PHP:
<?php get_header(); ?>
<!--// page --> <section id="content"> <div class="container"> <div class="single_left"> <div class="single_post_cont"> <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h1 itemprop="headline" title="<?php the_title(); ?>" class="single_title"><?php the_title(); ?></h1>
<div class="single_inside_content"> <?php the_content(); ?> </div><!--//single_inside_content--> <br /><br /> <?php //comments_template(); ?> <!--<div class="next_prev_cont"> <div class="left"> <?php previous_post_link('%link', '<i>Previous post</i><br />%title'); ?> </div> <div class="right"> <?php next_post_link('%link', '<i>Next post</i><br />%title'); ?> </div> <div class="clear"></div> </div>--><!--//next_prev_cont--> <?php endwhile; else: ?> <h3>Sorry, no posts matched your criteria.</h3> <?php endif; ?> </div><!--//single_post_cont--> </div><!--//single_left--> <?php get_sidebar(); ?> <div class="clear"></div> </div><!--//container--></section><!--//content--><?php get_footer(); ?>
دوستان کسی هست مشکل منو حل کنه
اگر هدر دریافتی ۴۰۴ باشد مشکلی نیست که محتوای صفحه اصلی رو نشون بدید
هر چند بهتر هست صفحه اختصاصی بسازید.
می تونید فایل single.php از پوشه قالب رو کپی و با نام 404.php ذخیره کنید.
در صورت نیاز می تونید شخصی سازی و ... هم روی قالب جدید انجام بدید
برای رفع مشکل 404 ساده ترین راه روش زیر هست:
1 - یک فایل php با نام 404 در فولدر تمپلیت وردپرس خودتون ایجاد کنید
2 - فایل را باز کنید و محتوی زیر را در اون کپی کنید و ذخیره کنید.
کد PHP:
<?php
get_header(); ?>
<div id="primary">
<main id="main" role="main">
<section class="error-404 not-found">
<header class="page-header">
<h1 class="page-title">Page Not Found!</h1>
</header>
<div class="page-content">
<p>It looks like nothing was found at this location.</p>
</div>
</section>
</main>
</div>
<?php get_footer(); ?>
بعد از اینکار دیگه نیاز به انجام کاردیگری نیست و به صورت خودکار اگر صفحه ای یافت نشه این صفحه نشون داده میشه. البته این کد تست هست و شامل قسمت هایی میشه که حتما باید در صفحه گنجانده بشه. خودتون میتونید هر چیزی دیگری را بر اساس نیازتون بهش اضافه کنید
خیلی ممنون از راهنماییتون کارایی که فرمودین انجام دادم و درست شد.اما صفحه ی 404 که بالا میاد 2 تا نوشته ی"Page Not Found"و"It looks like nothing was found at this location" توی حریم و کادر اصلی صفحه نیستن و از سمت چپ صفحه چسبیدن به انتهای صفحه.میشه راهنمایی بفرمایید چکار کنم؟فایل page.php رو هم اینجا میذارم اگه نیاز باشه
کد PHP:
<?php get_header(); ?><!--// page --> <section id="content"> <div class="container"> <div class="single_left"> <div class="single_post_cont"> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <h1 itemprop="headline" title="<?php the_title(); ?>" class="single_title"><?php the_title(); ?></h1> <div class="single_inside_content"> <?php the_content(); ?> </div><!--//single_inside_content--> <br /><br /> <?php //comments_template(); ?> <!--<div class="next_prev_cont"> <div class="left"> <?php previous_post_link('%link', '<i>Previous post</i><br />%title'); ?> </div> <div class="right"> <?php next_post_link('%link', '<i>Next post</i><br />%title'); ?> </div> <div class="clear"></div> </div>--><!--//next_prev_cont--> <?php endwhile; else: ?> <h3>Sorry, no posts matched your criteria.</h3> <?php endif; ?> </div><!--//single_post_cont--> </div><!--//single_left--> <?php get_sidebar(); ?> <div class="clear"></div> </div><!--//container--></section><!--//content--><?php get_footer(); ?>
من کد شما را برای صفحه 404 تغییر دادم که در زیر هست. بقیه اش را بر اساس طراحی خودتون درستش کنید و متن های داخلش را هم میتونید تغییر بدهید. مسئله ای که هست اینه که شما نمیتونید از محتوی صفحاتی مانند page.php یا single.php برای 404 استفاده کنید. و اگر اون صفحات را کپی کنید و اسمش را تغییر بدهید باعث میشه که نه تنها مشکل 404 حل نشه بلکه از اون به بعد خطای 500 را هم دریافت کنید.
مواردی که باید توی 404 باشه را توی کد زیر که بر اساس کدی است که خودتون فرستاید اومده. خودتون میتونید به دلخواه محتوی را تغییر بدهید.
کد PHP:
<?php get_header(); ?>
<section id="content">
<div class="container">
<div class="single_left">
<div class="single_post_cont">
<h1 itemprop="headline" class="single_title">صفحه یافت نشد</h1>
<div class="single_inside_content">صفحه مورد نظر شما یافت نشد</div>
<br /><br />
</div>
</div>
<div class="clear"></div>
</div>
</section>
<?php get_footer(); ?>
سلام تشکر از شما با این کد جدید مشکل حل شد
اما یه چیزی که هست اینه که وقتی توی آدرس بار مرورگر آدرسی از سایتو که وجود نداره تایپ میکنم ریدایرکت میشه به صفحه اصلی(302 به 200) و وقتی دوباره همون آدرسی که وجود نداره رو توی همون آدرس بار (آدرس بار مرور گر توی همون صفحه مرورگر که صفحه اصلی سایتمو بالا اورده)تایپ میکنم این بار بدرستی برگه 404 بالا میاد(status code 404)
یعنی آدرس اشتباهو اول ریدایرکت میکنه صفحه اصلی بعد اگه توی همون صفحه دوباره آدرس اشتباهو وارد کنی این بار 404(به شکل کدی که دادین) بالا میاد
این مشکل توی کد قبلی هم بود
ممنون میشم در این باره هم راهنمایی بفرمایید.تشکر
پیشنهاد میکنم برای خطاهای سایتتون یک صفحه داشته باشید . اگه بتونید توی اون صفحه لینکهای مفید به مطالب دیگرتون داشته باشید تا کاربر را به گشت و گذار بیشتر در سایت ترغیب کنه خیلی خوبه
این کار را برای تمامی صفحات خطا پیاده سازی کنید مطمئن باشید نتیجه خوبی خواهید گرفت