article

مقایسه خطای 404 و کد 301 ریدایرکت (Redirect)

web-http-redirect-error

یکی از مهم ترین مسائل در دانش سئو (SEO مخفف Search Engine Optimization و به معنی بهینه سازی صفحات وب برای موتورهای جستجو) این است که در پاسخ درخواست موتورهای جستجو برای دریافت محتوای URL چه کد HTTP ای باید از طرف سرور تنظیم شود، شاید برای کاربران عادی سایت ها و وبلاگ ها این مسئله چندان فرقی نکند و مهم صفحه و محتوایی باشد که نمایش داده می شود، اما از نظر موتورهای جستجو اینکه یک سرور در پاسخ به درخواست دریافت URL چه کد HTTP ای برمی گرداند می تواند نقش تعیین کننده ای در نحوه عملکرد آنها داشته باشد، بعضا مشاهده می شود که به دلیل اشتباه یا ناآگاهی از نحوه عملکرد کدهای HTTP حتی کلیه محتوای یک سایت که در ظاهر مشکلی نداشته از لیست نتایج جستجو حذف شده است، از جمله مهم ترین این اشتباهات استفاده نادرست از کد خطای 404 به جای کد 301 ریدایرکت است، به همین دلیل در این مطلب می خواهیم این دو کد را با هم مقایسه کنیم تا با کاربردها و تفاوت های آنها بیشتر آشنا شویم.

چگونه کدهای HTTP سرور را بررسی کنیم؟


ممکن است برایمان این سوال مطرح باشد که چگونه می توانیم مطمئن شویم سرور در پاسخ درخواست ها چه کد وضعیت HTTP را برمی گرداند؟
در پاسخ باید گفت در مرورگرهایی نظیر فایرفاکس، گوگل کروم و... معمولا قسمتی تحت عنوان Web Developer، Developer Tools، Web Console یا عباراتی شبیه به این وجود دارد که در آنها ابزارهای بسیار خوبی برای برنامه نویسان وب و مدیران سایت ها ارائه می شود، به طور مثال هنگام ورود به یک سایت یا صفحه وب جزئیات کاملی از پاسخ های سرور نمایش داده می شود.
Browser Console Status
نکته: معمولا با زدن دکمه F12 صفحه کلید در مرورگرها قسمت مربوط به بررسی کدهای وضعیت HTTP و سایر امکانات خطایابی در دسترس قرار می گیرد.
علاوه بر این گوگل نیز در ابزار وبمستر خود امکانی تحت عنوان Fetch as Googlebot دارد که با آن می توانیم صفحات خود را با ربات گوگل دریافت و از کارکرد صحیح آنها اطمینان حاصل کنیم، این خدمات گوگل در آدرس 
https://www.google.com/webmasters
ارائه می شود.

کد HTTP 200 یا وضعیت Ok چیست؟


قبل از اینکه بخواهیم خطای 404 را با کد 301 ریدایرکت مقایسه کنیم باید اول ببینیم که پاسخ سرور در حالت عادی چگونه است و اصلا این کدها به چه معنی هستند؟!
طبق پروتکل های وب و از جمله پروتکل HTTP در تعامل بین واسط کاربری (User-agent) و سرور (Server) به طور مثال تعامل بین مرورگر کاربر و سرور یک سایت کدهایی از طرف سرور به عنوان پاسخ به درخواست مرورگر ارسال می شود که وضعیت منبع درخواست شده را تعیین می کند، به فرض اگر منبع درخواستی از URL یک فایل تصویر بوده:
http://example.com/images/tree.png
و این فایل قبلا حذف شده یا تغییر نام داده باشد کد 404 به عنوان عدم پیدا شدن منبع درخواستی یا کد 301 به عنوان تغییر نام یا تغییر محل نگهداری تصویر به مرورگر ارسال می شود، به همین صورت این کد در حالتی که همه چیز روبه راه و به اصطلاح وضعیت Ok باشد با عدد 200 ارسال می شود که نشان دهنده مرتب بودن اوضاع و بدون مشکل بودن سرور و منبع درخواستی است.
Request URL: http://example.com/images/tree.png
Request Method: GET
Status Code: 200 OK
همان طور که گفتیم گاهی خواسته یا ناخواسته ممکن است مشکلی وجود داشته باشد و سرور نتواند منبع مورد نظر را به درستی در پاسخ درخواست ارسال کند و در اینجاست که اهمیت کدهای خطای HTTP مشخص می شود، شاید کاربر عادی (انسان) برایش چندان فرقی نکند که چه کدی از طرف سرور ارسال شده است اما موتورهای جستجو به دلیل ماهیتشان نمی توانند مثل انسان ها اوضاع را تجزیه تحلیل کنند و تنها به کدی که به عنوان پاسخ برگردانده می شود اهمیت می دهند، فرض کنیم سایتی دچار مشکل شده است و نمی تواند منبع درخواست شده را پیدا کند اما با این وجود در مقابل درخواست ربات جستجوگر کد 200 HTTP یا وضعیت Ok را برگرداند، واضح است که در چنین شرایطی ربات تصور می کند همه چیز مرتب است و صفحه دارای مشکل که بعضا ممکن است فاقد محتوا یا پیغام خطا در آن نشان داده شده باشد را ایندکس (ذخیره) می کند، از این وضعیت بدتر اینکه ممکن است منبع درخواستی در سرور وجود داشته باشد اما با ارسال کد HTTP نادرست (به فرض 404) ربات تصور کند که محتوای مد نظرش حذف شده و در دسترس نیست!
برای جلوگیری از بروز اینگونه مشکلات باید در هر وضعیت از کد خطای 404 و 301 ریدایرکت متناسب آن استفاده کنیم که البته هر کدام موارد استفاده جداگانه ای دارند که در ادامه به آنها اشاره خواهیم کرد.

کد خطای 404، صفحه مورد نظر پیدا نشد!


کد خطای 404 یا Not Found به این معنی است که سرور نمی تواند منبع درخواستی (اعم از صفحه وب، فایل و...) را پیدا کند و دلیل خطای 404 یا Not Found معمولا حذف مطلب یا فایل و یا تغییر نام آنها است، گاهی مواقع برای اینکه به ربات های جستجوگر بگوییم که محتوای مد نظر آنها دیگر وجود ندارد و آن را از لیست جستجو حذف کنند، باید با کد 404 HTTP به درخواست آنها پاسخ دهیم، معمولا سرورها در حالت عادی این کار را برای لینک ها و فایل هایی که واقعا وجود ندارند به صورت خودکار انجام می دهند اما گاهی نیاز است که به صورت آگاهانه این کد خطا را تنظیم کنیم، به طور مثال برای دایرکتوری هایی که از نظر ما حساس هستند و نمی خواهیم ربات آنها را پیدا کند (به فرض دایرکتوری پنل مدیریت سایت) و یا در مورد لینک های داینامیک ناقص که ممکن است برنامه سمت سرور به جای خطای 404 صفحه اصلی سایت را نمایش دهد، در این حالت ها لازم است که به صورت دستی کد خطای 404 تنظیم کنیم و خواهیم دید که خزنده های جستجوگر بعد از چند بار مراجعه و درخواست محتوا، نهایتا منصرف شده و آن لینک را به عنوان لینک مُرده برچسب گذاری می کنند.

چگونه کد خطای 404 HTTP را تنظیم کنیم؟


تنظیم کد خطای 404 HTTP بسته به اینکه هدفتان چه باشد می تواند کار ساده و در عین حال حساسی باشد، اشتباه در این کار می تواند به قیمت حذف سایت یا صفحه از لیست نتایج جستجو تمام شود، با این وجود برای انجام این کار معمولا دو راه پرکاربرد وجود دارد:
استفاده از دستورات فایل htaccess. و یا استفاده از زبان های برنامه نویسی سمت سرور مانند PHP یا ASP که در مثال های زیر روش استفاده از دستورات فایل htaccess. و برنامه نویسی PHP را بررسی می کنیم.

تنظیم خطای 404 با دستورات فایل htaccess.


در سرورهای Apache معمولا می توانیم با ایجاد فایلی با نام htaccess. در ریشه سایت (فولدر www یا public_html) بر روی اینگونه عملکردهای سرور کنترل داشته باشیم (در صورت نیاز در این رابطه باید از پشتیبانی هاستمان سوال کنیم)، این فایل در صورت عدم وجود دقیقا به همین صورت صرفا با پسوند htaccess و بدون نام باید ساخته شود.
همانطور که گفتیم سرورها در حالت معمول به طور خودکار خطای 404 را برای صفحات و فایل هایی که به هر دلیل در دسترس نباشند نمایش خواهند داد، اما برای تنظیم صفحه ای سفارشی که کاربر را پس از دریافت خطا با اطلاعات مد نظرمان راهنمایی کند یا او را به آدرس دیگری منتقل نماید، می توان از دستوری مشابه نمونه دستور زیر استفاده کرد:
ErrorDocument 404 /404errorpage.html
کافی است دستور بالا را در فایل htaccess. قرار دهیم (اگر این فایل در سرور وجود ندارد می توانیم در محیط مدیر فایل سرور یا با کپی از فایل های موجود آن را بسازیم)، از این به بعد سرور به جای نمایش صفحه پیش فرض صفحه موجود در ریشه سایت با نام 404errorpage.html را نمایش خواهد داد، همچنین می توانیم این صفحه را در یک فولدر دیگر نیز قرار دهیم:
ErrorDocument 404 /error/404errorpage.html
دقت کنیم که حتما آدرس ها باید به شکل بالا در یک خط و به صورت دایرکتوری تنظیم شده باشند، به فرض تنظیم به صورت
http://www.example.com/error/404errorpage.html
صحیح نیست، از طرفی می توانیم درون صفحه 404 سفارشی از متاتگ های robots و مقادیر noindex استفاده کنیم تا از عدم ذخیره صفحه توسط ربات ها مطمئیم شویم.
<meta name="robots" content="noindex">
این متاتگ را باید در قسمت header صفحه 404 بین تگ های head قرار دهیم.

تنظیم خطای 404 با برنامه نویسی PHP


علاوه بر دستورات htaccess می توانیم با برنامه نویسی سمت سرور و کدهای PHP نیز خطاهای 404 را مدیریت کنیم، برای این کار کافی است با استفاده از توابع header در PHP کد 404 HTTP را در پاسخ درخواست کاربر از سرور به مرورگر (یا هر واسط کاربری دیگری) ارسال کنیم:
<?php
header('HTTP/1.0 404 Not Found');
?>
دقت کنیم که دستورات مربوط به header در PHP باید قبل از چاپ هر نوع خروجی متنی یا HTML اجرا شوند در غیر این صورت با خطا ی 
Warning: Cannot modify header information - headers already sent
مواجه خواهیم شد.

خطای Soft 404 چیست؟


علاوه بر خطای 404 حقیقی که با دریافت کد 404 در سربرگ های HTTP مشخص می شود، نوعی خطای عدم پیدا شدن منبع درخواستی با عنوان Soft 404 error وجود دارد که در این حالت فقط صفحه ظاهری خطا نمایش داده می شود بدون اینکه واقعا کد 404 HTTP در Header پاسخ از طرف سرور تنظیم و ارسال شود (به جای کد 404 کد 200 و وضعیت Ok ارسال می شود)، هرچند این کار می تواند در مواقع خیلی ضروری که نیاز به غیر فعال کردن موقت یک منبع (صفحه، فایل و...) صرفا از دید کاربران (و نه موتورهای جستجو) است مفید باشد اما باید دقت کنیم که در صورت مراجعه ربات های جستجوگر و دریافت پاسخ 200، محتویات فعلی منبع جایگزین محتویات از پیش ایندکس شده آن خواهند شد و بدیهی است که ایندکس شدن محتوای صفحه خطا تاثیر منفی بر SEO را در پی خواهد داشت.
باید سعی کنیم تا حد امکان از عدم وجود خطاهای Soft 404 در کل سایتمان اطمینان حاصل کنیم و در صورتی که نیاز به استفاده از این نوع خطا داشتیم در حداقل زمان ممکن وضعیت را به حالت عادی برگردانیم.

کد 301 HTTP ریدایرکت چیست؟


گفتیم خطای 404 برای لینک هایی مناسب است که می خواهیم از لیست جستجو حذف شوند یا دیگر مورد درخواست ربات های خزنده قرار نگیرند، اما فرض کنیم به تازگی سایت خود را از دامنه قبلی به آدرس جدیدی منتقل یا تغییراتی در ساختار لینک های آن اعمال کرده باشیم، مسلم است که اگر بدون اطلاع موتورهای جستجو این کار را انجام دهیم تمام تلاش هایمان و اعتبار کسب شده برای آن سایت و لینک های قبلی به هدر خواهد رفت، اما اگر کد 301 HTTP ریدایرکت (Redirect 301) را به درستی تنظیم کنیم موتورهای جستجو و کاربران به راحتی و بدون از دست رفتن اعتبار قبلی به آدرس جدید محتوای مد نظرشان هدایت می شوند، در مورد موتورهای جستجو وقتی آنها در پاسخ درخواست کد 301 را دریافت می کنند، آدرس جدید را جایگزین لینک قدیمی کرده و تمام ویژگی ها، رنک و امتیازات را از آدرس قبلی به آدرس جدید انتقال می دهند (البته معمولا این کار مدت زمان کوتاهی طول می کشد)، در مورد کاربران نیز مرورگرها به طور خودکار به آدرس جدید هدایت می شوند (حتی ممکن است سرعت انتقال در حدی باشد که متوجه این فرآیند نشویم).
نکته: تنظیم کد 301 ریدایرکت شیوه توصیه شده موتورهای جستجو از جمله گوگل جهت انتقال از آدرس های قبلی به آدرس جدید است.

تنظیم کد 301 ریدایرکت با دستورات فایل htaccess.


مانند خطای 404 می توانیم کد 301 ریدایرکت را هم با دستوراتی در فایل htaccess. تنظیم کنیم و برای این کار از Flag [R] استفاده می کنیم، در مثال زیر این کار برای فایل index.html انجام شده است و کاربر در صورت درج عبارت index.html در آدرس URL به صفحه اصلی سایت هدایت می شود.
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.html
RewriteRule ^index.html$ https://webgoo.ir [R=301,L]
دقت کنیم که ممکن است برخی سرورها قابلیت کنترل با دستورات فایل htaccess. را غیرفعال کرده باشند (معمولا این قابلیت فعال است)، در اینگونه موارد باید با پشتیبان هاست خود موضوع را مطرح کنیم.
نکته: برای اطمینان از فعال بودن فایل htaccess. در سرور کافی است در این فایل یک دستور ناقص مانند کد زیر درج کنیم:
.htaccess Test!
اگر با اجرای سایت خطای
500 Internal Server Error
دریافت کنیم یعنی سایت تنظیمات فایل htaccess. را پردازش کرده و این قابلیت فعال است، در غیر این صورت باید موضوع را جهت فعال سازی به پشتیبانی هاست اطلاع دهیم.

تنظیم کد 301 ریدایرکت با برنامه نویسی PHP


با استفاده از تابع header در PHP و تنظیم آدرس URL جدید جهت انتقال، می توانیم لینک را به اصطلاح برای همیشه (Permanently) منتقل کنیم، به طور مثال:
<?php
header('HTTP/1.1 301 Moved Permanently');    
header('Location: https://webgoo.ir');
die();
?>
همان طور که دیدیم شرایط و موقعیت های استفاده از خطای 404 با 301 ریدایرکت متفاوت است و باید هوشمندانه و به جا از این کدها در برنامه مدیریت سایتمان استفاده کنیم.
sectionدسته بندی: مهارتهای وب » بهینه سازی
related مطالب بیشتر:
» پیج رنک چیست و چگونه می توان آن را افزایش داد؟
» چرا برخی سایت ها و وبلاگ ها رتبه الکسای بهتری دارند؟
» دوباره نویسی آدرس های وب (URL Rewrite) در htaccess
» مشکلات رایج در کدنویسی معتبر و رفع آنها
» حل مشکل محتوای تکراری (Duplicate Content) در سایت
commentنظرات (۲۳ یادداشت برای این مطلب ارسال شده است)
more یادداشت های جدید بر اساس تاریخ ارسال در انتهای یادداشت های موجود نمایش داده می شوند.
نویسنده: میزبانی وب
۰۹:۰۸ ۱۳۹۱/۰۵/۲۰
با تشکر از مطالب آموزنده تان
نویسنده: Pouya
۲۲:۳۲ ۱۳۹۱/۰۷/۱۰
ممنون از شما. :D
۱۰:۴۴ ۱۳۹۱/۱۰/۱۹
سلام
اگر سايت ما مثلا يك سايت آگهي باشد و بخواهيم دامنه اين سايت را برداشته و با حفظ رنك و رتبه به سايتي اختصاص دهيم كه ارتباطي با آگهي ندارد مثلا يك سايت تفريحي است چكاري بايد انجام بديم؟
ممنون
پاسخ: 
ریدایرکت 301 بیشتر و به طور استاندارد در مواقعی به کار می رود که محتوا تغییری نکند، اما محدودیتی نیز برای سایر موارد نیست، می توانید از آدرس قدیمی برای سایت جدید استفاده کنید و رنک دامنه حداقل در کوتاه مدت حفظ خواهد شد، هر چند ممکن است به تدریج افزایش یا کاهش داشته باشد که این بستگی به لینک های دریافتی، کیفیت مطالب و... دارد.
نویسنده: دوربین عکاسی
۱۸:۲۹ ۱۳۹۲/۰۵/۰۲
به علت تغییر ساختار سایت تعداد زیادی ارور 404 در گوگل وبمستر ایجاد شد. این ارورها مربوط به صفحاتی است که دیگر وجود ندارند و کد 404 هم نشان داده می شود. پس چرا این صفحات از ایندکس حذف نمی شود؟
پاسخ: 
فرآیند حذف لینک از لیست جستجو مدتی زمان خواهد برد، ربات خزنده چند بار باید به لینک مراجعه و هر بار خطای 404 دریافت کند تا نهایتا آن لینک از لیست جستجو حذف شود، دقت کنید سایت شما باید کد HTTP 404 تنظیم کند، صرف مشاهده صفحه 404 ممکن است کافی نباشد، برای اطمینان از ابزارهای Developer موجود در مرورگرها استفاده کرده و سربرگ های HTTP سایت خود را بررسی کنید.
نویسنده: نوید
۲۳:۴۳ ۱۳۹۲/۰۵/۲۵
سلام خسته نباشید
من قصد دارم انجمن سایتم رو که در روت نصب شده به فولدر forum منتقل کنم و در روت وردپرس نصب کنم، برای اینکه سایت از طرف گوگل ضربه نخوره چطور از کد 301 استفاده کنم ؟
ادرس فعلی :
www.happydays.ir
آدرس جدید :
www.happydays.ir/forum
خیلی ممنون میشم کد را ویرایش کنید و صحیحش رو در این نظرات قرار بدید ،
من مرتب این صفحه رو چک میکنم.
ضمنا به جز قرار دادن کد 301 و تغییر آدرس در وبمستر تولز کار دیگه ای باید انجام شود ؟
منتظر راهنمایی شما هستم
سپاس فراوان
پاسخ: 
انتقال لینک ها باید طوری انجام شود که شامل تمام موارد باشد، یعنی برای تمام حالت ها الگوی ریدایرکت تعریف کنید که این کار حساسی است و نیاز به بررسی دقیق ساختار تمام لینک های سایت دارد، به طور مثال کد زیر لینک های با الگوی
thread-3589-lastpost.htm
l را به دایرکتوری forum منتقل می کند (تست نشده):
RewriteRule ^([0-9]+)-lastpost\.html /forum/$1-lastpost\.html [NC,L]
مسلما لینک هایی با ساختار متفاوت نیاز به دستورات متفاوت دارند تا همه موارد به درستی منتقل شوند، لذا باید با عبارات باقاعده و دستورات htaccess آشنا باشید.
در مورد سوال دوم: خیر، نیاز به کار دیگری نیست، مهم این است که لینک های قبلی با کد HTTP 301 آدرس جدید را به گوگل معرفی کنند.
نویسنده: نوید
۰۳:۱۱ ۱۳۹۲/۰۵/۲۷
ممنون از راهنمایی شما ،
از اونجایی که ممکنه این کار حساس هست شاید یه دامین دیگه گرفتم و وردپرس رو اونجا نصب کردم ،
در صورتی که انجمن رو منتقل کردم از راهنمایی شما استفاده می کنم و نتیجه رو در همین صفحه گزازش می کنم،
سپاس فراوان از شما
نویسنده: تنهاامامي
۰۳:۵۳ ۱۳۹۲/۰۸/۱۱
سلام. و تشكر بابت مطالب بسيار مفيد و كاربردي شما
بنده وب سايتي دارم با يك چيزي حدود پنج هزار صفحه، كه به دليل تغيير زبان برنامه نويسي كليه لينكهاي قبلي نامعتبر خواهند شد.
ايا بحث redirect 301 را براي اين پنج هزار صفحه بايد دونه به دونه انجام داد يا راه حلي وجود دارد كه با يه الگوريتم يا فرمول براي همه انجام داد؟ و كلا اين موضوع چقدر زمانبر است؟ اگر راهنمايي كنيد كمك بزرگي به ما خواهد شد.
با تشكر
تنهاامامي
پاسخ: 
سیستم سایت از چه زبانی و به چه زبانی تغییر می کند؟
در هر صورت ایجاد برنامه انتقال خودکار امکانپذیر است، هر چند زمان طراحی آن بسته به میزان تفاوت ساختار و پارامترهای لینک ها می تواند متفاوت باشد.
نویسنده: Ali Zeus
۲۳:۰۱ ۱۳۹۳/۰۵/۳۰
با سلام و خسته نباشید
چطور میشه یک پوشه با خطای 403 ساخت؟ به گونه ای که چند نوع پسوند (مثلا عکس png jpg gif) و در صورت موجود بودن اجرا شوند و در غیر اینصورت خطای 403 فوربیدن نمایش داده شود (دسترسی به دیگر فایلها غیر ممکن باشد)
//در ضمن فایل نمایش دهنده خطا در پوشه ای بصورتی که تمامی خطاها (404 403 500 و غیره) به یک فایل پی اچ پی ارسال میکنم و با
$_SERVER["REDIRECT_STATUS"]
برای هر خطا یک پیام تعین کردم
پاسخ: 
دقیق متوجه سوالتان نشدیم، اما برای تنظیم یک فایل سفارشی جهت نمایش پیام های خطای سرور، می توانید در فایل htaccess نمونه دستورات زیر را قرار دهید:
ErrorDocument 500 /path/500.php
ErrorDocument 406 /path/406.php
ErrorDocument 404 /path/404.php
ErrorDocument 403 /path/403.php
ErrorDocument 400 /path/400.php
نکته: در این مثال فایل های خطا در دایرکتوری path قرار دارند و فایل htaccess در ریشه سایت.
نویسنده: Ali Zeus
۱۳:۱۸ ۱۳۹۳/۰۶/۰۱
با سلام و تشکر
بله سوالم رو نا مفهوم پرسیدم
منظورم اینه که میخوام یه پوشه بسازم برای عکس بطوری که فقط تصاویر توش اجرا بشه و در صورت اجرای فایل هایی غیر از عکس، خطای 403 فوربیدن نمایش داده بشه
یعنی مثلا فقط پسوند های jpg gif png قابل اجرا باشه
//مثلا اگر کاربر یک فایل مثلا پی اچ پی موجود در اون پوشه رو اجرا کنه، خطای 403 نمایش داده شه
ممنون
پاسخ: 
برای محدود کردن فرمت های مجاز در یک دایرکتوری می توانید درون فایل htaccess در آن دایرکتوری، دستورات زیر را قرار دهید:
order allow,deny
deny from all
<Files ~ "\.(jpq|jpeg|png|gif)$">
order deny,allow
allow from all
</Files>
نویسنده: Ali Zeus
۱۹:۴۲ ۱۳۹۳/۰۶/۰۲
با سلام
یه دنیا ممنون
مشکلم حل شد
نویسنده: 404 تستر
۰۳:۲۴ ۱۳۹۴/۰۲/۰۵
با سلام
با استفاده از ابزار 404 تستر می تونید چک کنید که صفحه 404 سایت به درستی تنظیم شده یا نه.
آدرس ابزار 404 تستر:
http://www.seosem.ir/tool/404tester
با تشکر
نویسنده: مهدی
۰۴:۵۹ ۱۳۹۴/۰۲/۲۲
سلام اقا به داد ما برسید من انجمنم با دو ادرس باز میشه
forum.site.com
site.com/forum
مطالب نه اما بخش مختلف انجمن هم دو ادرسه هست بهترین کد انتقال برای انجمن چیه 301 ؟
میشه یه کد استاندارد بدید برای انجمن مای بی بی
پاسخ: 
ریدایرکت 301 یک روش استاندارد با هدفی مشخص است، بهترین حالت بستگی به هدف شما دارد، اگر یک آدرس به آدرس دیگر ترجیح دارد، ضمن حذف قایلیت دسترسی به صفحات از آدرس فرعی، آدرس های قبلی را به آدرس اصلی با کد 301 ریدایرکت کنید (انجام بخش کدنویسی این کار باید توسط فردی انجام شود که با سیستم انجمن ساز شما آشنایی کافی داشته باشد!).
نویسنده: سیما
۱۸:۲۶ ۱۳۹۴/۰۶/۲۶
سلام کدهای که گفتید استفاده کردم اما هیچ کدوم کار نکرد
در سایتم مطالب حذف کردم و در وب مستر تولز ارور 404 چجوری میتونم همه مطالب حذف شده به صحفه اصلی ریدایکت کنم که ارور 404 و soft 404 error نده؟
پاسخ: 
سلام
کدهای توضیح داده شده روش های استاندارد حال حاضر وب هستند (نظر شخصی نویسنده مطلب نیستند!)، صرف درج این دستورات کافی نیست، اینکه واقعا آدرس های درخواستی سایت شما چه کد HTTP برگردانند نیاز به تست و بررسی دارد، اینکه تصور کنید آدرسی کد HTTP خاصی برمی گرداند کافی نیست، باید با ابزارهایی دقیق، پاسخ سرور را در سربرگ های HTTP مشاهده کنید، ضمن اینکه فرآیند حذف خطاها از گوگل وبمستر زمانبر است و به فرض هر هفته یک بار می توان انتظار تغییر در نتایج را داشت!، در کل با کد 301 می توان هر محتوایی را بدون از دست دادن ارزش لینک به محتوای دیگر منتقل کرد.
نویسنده: محمد رضا
۱۹:۰۶ ۱۳۹۴/۱۲/۱۷
سلام . خسته نباشید .
برای مثال یک وب سایت دارم
میخوایم به طور دائم با آدرس همراه با www باز بشه برای اینکار باید چیکار کنیم یعنی هرکس آدرس
http://test.com
رو زد
http://www.test.com
باز شه و همه ی صفحاتشم با www باز بشه ..
لطفا کمک کنید خیلی واجبه ممنون از سایت خوبتون ...
پاسخ: 
می توانید دستور htaccess زیر را در ریشه سایت قرار دهید:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
اگر از HTTPS استفاده می کنید:
RewriteEngine On
RewriteCond %{HTTPS}s ^on(s)|
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http%1://www.%{HTTP_HOST}/$1 [R=301,L]
نویسنده: ریدایرکت 301
۰۱:۵۵ ۱۳۹۴/۱۲/۲۰
درباره ریدایرکت ۳۰۱ سوال داشتم
چه چیزی باعث میشه ریدایرکت ۳۰۱ زده شده که از وبمستر هم چند اف ادرس زده شده سریع تر صورت بگیره؟
شنیدم وقتی مثال دامین فیلتر میشه و ریدایرکت میزنیم اگر برای دامین فیلترمون ای پی بخریم (ای پی بدیم بهش) سریعتر ریدایرکت میشه اگر میشه راهنمایی کنید که چجوری میشه کاری کرد که دامین کمتر از ۲ روز ریدایرکتش انجام بشه
یا اینکه سریعتر باشه ریدایرکت
ممنون میشم کمک کنید بهم
پاسخ: 
سوالتان مبهم است! اگر منظورتان تسریع در روند دسترسی به دامنه تازه ثبت شده و فعال شدن DNS ها است، این موضوع در اختیار کاربر یا تنظیمات سرور نیست، بلکه به کارگذار دامنه (به طور مثال سایت nic.ir برای دامنه های کشوری ایران) ارتباط دارد و هر کارگذاری سیاست های خاص خودش را در این زمینه اعمال می کند.
more لطفا پیش از ارسال یادداشت نکات زیر را مد نظر داشته باشید:
- موارد غیرمرتبط با مباحث آموزش ها را در فرم منوی "تماس با ما" مطرح و پاسخ را از طریق ایمیل دریافت کنید.
- به سوالات کلی، مبهم و مشکلاتی که تلاشی برای رفع آن نکرده باشید پاسخ مختصر داده خواهد شد.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین قرار دهید تا امکان تست و بررسی وجود داشته باشد.
- از درج عناوین تبلیغاتی در فیلدها خودداری کنید، در صورتی که یادداشت تبلیغاتی تشخیص داده شود حذف خواهد شد.
- تمام یادداشت ها بررسی و زمانی جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد خودداری کنید.





1 × 7
 refresh

آخرین دیدگاه ها
more برای دسترسی سریع به یادداشت مربوطه می توانید از لینک مطلب در کادر زیر استفاده کنید.
form کوثر رحیمی
در:
سلام ا ز راهنماییتون ممنونم من تازه وبلاگم رو درست کردم ۱۲ سالمه هر کاری می کنم فیلم در اون قرار نمیگیره همش این خطا...
۱۳۹۹/۱۰/۲۹

form متین
در:
سلام و خسته نباشید من بخوام داده ای که از قبل موجوده رو با متد پست به یک فایل ارسال کنم چجور میشه؟ یعنی...
۱۳۹۹/۱۰/۲۷

form روشنا
در:
سلام ما یه وبلاگ گروهی داریم مختص املاک فایل های جدید و حتی قالب جدید اصلا اعمال نمیشه . حتی راهنمایی که کرده...
۱۳۹۹/۱۰/۲۷

form علی
در:
من در یک سایت سازی سایت ساختم یه بخش داره به نام اسکریپت دلخواه می خوام یه اسکریپتی بذارم که مثلا یه موسیقی وقتی کاربر...
۱۳۹۹/۱۰/۲۷

form امیرحسین
در:
بله استاد خیلی ممنون، نمیدونستم خودش Optimize رو انجام میده در کل من بعد از ایندکس گذاری ها همیشه سعی کردم جوری که با...
۱۳۹۹/۱۰/۲۶

form امیرحسین
در:
ُسلام وقت بخیر این کووری هم چون اول قسمت WHERE انجام میشه بعد قسمت ON پس این کووری هم با حالت کووری قبلی برابره
۱۳۹۹/۱۰/۲۶

form امیرحسین
در:
سلام استاد وقت بخیر ممنون از پاسخ گویی های قبلی یه سوال دیگه داشتم: این هم هیچ مشکلی نداره و کار میکنه، ایا...
۱۳۹۹/۱۰/۲۵

form محمد بیدل بازه
در:
سلام خسته نباشید ببخشید من توی یک قسمت سایتم تصویری دارم و میخوام سمت راست اون تصویر متن بنویسم ولی نمیشه تا متن رو...
۱۳۹۹/۱۰/۲۵

form سلام
در:
و اینکه یه تگ خوب برای فونت معرفی کنید و یه تگ دیگه که متن رو (تیتر مطلب (تست)) در ادامش بنویسه نه اینکه...
۱۳۹۹/۱۰/۲۴

form سلام
در:
سلام وبسایتم را نگاه کنید از چه تگی استفاده کنم تا فاصله بین تیتر مطلب جدید را کاهش دهم؟ (از خطی به خط...
۱۳۹۹/۱۰/۲۴

form وطن
در:
سلام. خسته نباشید. خیلی گشتم درباره یک خطا یا ایراد فنی که چند روز هست در سایت نوشته شده با پی اچ پی (اسکریپت اولوشن)...
۱۳۹۹/۱۰/۲۴

form حورارمی
در:
سلام. من هنوز نمیدونم تو تنظیمات باید کجا رو بگردم تا قالب وبلاگم رو با عکس مورد علاقه ام تغییر بدم. یا نمیتونم...
۱۳۹۹/۱۰/۲۳

form راشد
در:
این روش خیلی طولانیه در فروشگاه من یک برنامه گرفتم که یه عکس توش اپلود کن بهت یک لینک میده در ظرف چند ثانیه و...
۱۳۹۹/۱۰/۲۱

form باسلام
در:
باسلام خدمت شما عزیز زحمت کش، من مطلب را تا آخر مطالعه کردم. من وبلاگم بازدیدای زیادی داره چون تمام مطالبش رو خودم مینویسم و...
۱۳۹۹/۱۰/۲۱

form محمود
در:
سلام و عرض ادب من در سایتم یک قسمت تب ایجاد کردم، متن ها را که در تب می نویسم پاراگراف بندی نمی شوند....
۱۳۹۹/۱۰/۲۱
form علی آقابیگی
در:
سلام خسته نباشید ببخشید من می خواستم کد جدید در وبلاگم بزارم بعد اشتباهی رفتم در قسمت ویرایش کدها و بعد بیشتر کدها را پاک...
۱۳۹۹/۱۰/۲۰
form محمد
در:
سلام. من میخوام با جاوا اسکریپت یک کدی بنویسم که وقتی کاربر روی یک دکمه ‏ای کلیک کرد، یک کد تصادفی برای شمارش ارسال...
۱۳۹۹/۱۰/۲۰
form پوریا
در:
سلام خسته نباشید، ممنونم بابت توضیحات خوبتون، یه مشکلی داشتم میخواستم ببینم امکانش هست راهنمایی کنید؟ فرض کنید یه اینطور متنی داریم: ...
۱۳۹۹/۱۰/۱۹
form seyedsobhanmansouri
در:
سلام خسته نباشید من سایتمو طراحی کردم اما به این مشکلات بر میخورم اول اینکه هدر سایتم نمایش داده نمیشه اصلا و بعد...
۱۳۹۹/۱۰/۱۹
form رضا
در:
سلام. ممنون بابت مطالب مفیدتون. این نوع جستجو به سئو سایت لطمه نمیزنه؟؟؟ چون در این مدل جستجو، مقدار impression میره بالا ولی...
۱۳۹۹/۱۰/۱۹
form mahdi
در:
سلام استاد عزیز ، پس بنظرتون بجای وقت گذاشتن برای یادگیری لاراول و وردپرس ، وقت بزارم که عمیق تر php و ساختار mvc...
۱۳۹۹/۱۰/۱۹
form علی
در:
سلام و ممنون بابت وبسایت عالیتون داخل بعضی سایت ها دیدید مثلا یه متنی شروع به تایپ شدن می کنه و وقتی کامل شد...
۱۳۹۹/۱۰/۱۸
form محمد
در:
سلام خدمت شما دوست عزیز سوالم این بود میخاستم چندتا مثال از این تابع و چند تابع دیگه از خودتون رو برام مثال بزنید...
۱۳۹۹/۱۰/۱۸
form محمود رنجبر
در:
سلام برادر مشکل من تو همین سایتی هست که فرستادم وقتی گزینه خانه رو کلیک میکنم و بعد دکمه بک گوشی رو میزنم بالای صفحه...
۱۳۹۹/۱۰/۱۷
form mahdi
در:
سلام استاد عزیز ، بعد از آموزس php با لاراول کار کنیم بهتره ؟
۱۳۹۹/۱۰/۱۶
form رضا
در:
آدرس رو براتون گذاشتم دامنه قبلا روی یه وبلاگ میهن بلاگ بود چند ماه میشه که از میهن بلاگ خداحافظی کردم ولی هنوز که هنوزه...
۱۳۹۹/۱۰/۱۴
form نیلو
در:
سلام... ببخشید بعد طراحی قالب قالب شیشه ایم هست یا نه؟؟؟
۱۳۹۹/۱۰/۱۳
form مجتهدزاده
در:
سلام من یه فرمی طراحی کردم که توش قراره تعداد زیاد (حدود 10 الی 50) فیلد رو تو دیتابیس اینسرت کنم. آیا باید...
۱۳۹۹/۱۰/۰۸
form مجتهدزاده
در:
سلام لطفا راهنمایی بفرمایید که چه زمانی قبل از متغیر @ استفاده می شه و کاربردش چیه؟ با تشکر
۱۳۹۹/۱۰/۰۶
form ali
در:
سلام چجوری میشه با php بازی هوب رو طراحی کرد
۱۳۹۹/۱۰/۰۶
form رضا
در:
سلام ممنون از سایت خوبتون ایکون سایتم رو توی دسکتاپ درست نشون میده ولی تو گوشی مشکل داره طبق اموزش شما هم انجام دادم...
۱۳۹۹/۱۰/۰۶
form فرانک دستان
در:
سلام من خیلی دوست دارم روی وبلاگم کد اهنگ بزارم ولی هیچ کدوم نمی یاد بهم گفتن از این کدها دیگه پشتیبانی نمی شه شما...
۱۳۹۹/۱۰/۰۵
form مصطفی
در:
سلام. عملگر @ چه زمانی قبل از یک متغییر میاد؟
۱۳۹۹/۱۰/۰۵
form سما
در:
سلام من وقتی میزنم روی مشاهده وبلاگ صفحه فیلتر برام میاد و نمیتونم وبلاگمو ببینم
۱۳۹۹/۱۰/۰۵
form مجتبی
در:
سلام من وبلاگ بلاگفا دارم کدها و جاوا استیکرها رو میزارم تو قسمتشون ولی همه ی کدها رو یکطرف وبلاگ نشون میده چطوری سمت...
۱۳۹۹/۱۰/۰۵
form matin asadi
در:
سلام ممنون بابت سایت خوبتو من یه مشکلی دارم می خواستم کدی برای این مثال زیر بنویسم ولی بلد نیستم ممنون میشم کمک کنید. ...
۱۳۹۹/۱۰/۰۲
form sahar1999
در:
سلام وقت بخیر چطور میتونم در برنامه نویسی سی شارپ هنگام ایجاد پایگاه داده ی MySql نام پایگاه داده رو از txetbox دریافت کنم؟
۱۳۹۹/۱۰/۰۱
  در انتظار بررسی: ۰
 پاسخگویی به سوالات ممکن است تا 24 ساعت زمان ببرد.