گیک فارسی

نوشته های یک گیک فارسی از فعالیت ها ،‌ علاقه مندی ها و نقد هایش

انتقال (Redirect) دامنه های فرعی به اصلی

نویسنده:
10 آوریل 15

اگه طراح وب باشید به احتمال زیاد به شرایطی برخورد کردین که شما یا مشتری پیشنهاد میدین هم دامنه ir و هم دامنه com و در شرایط حادتری چند دامنه مرتبط یا شبیه دامنه اصلی را ثبت کنید. قطعاً index شدن یک محتوا در چند دامنه برای سئو سایت مناسب نیست و دامنه های فرعی بایستی به دامنه های اصلی انتقال پیدا کنند.

بدترین اتفاق مخصوصاً در مورد دامنه های ir این هست که برای redirect از طریق ثبت کننده دامنه باید پول اضافی بدین و حتی اگه ثبت کننده شما انتقال را براتون انجام بده معمولاً فقط نام مثلاً domain1.com به domain.com منتقل میشه ، حالا اگه شما صفحه about-us به نشانی domain.com/about-us داشته باشین و کاربری صفحه domain1.com/about-us را بزنه به صفحه index دامنه domain.com انتقال پیدا میکنه.

حالا برای اینکه هم هزینه اضافی نکنیم و هم هر صفحه‌ای با هر مسیری که زده میشه به دامنه اصلی و همون صفحه انتقال داده بشه باید از htaccess. استفاده کنیم :

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

برای توضیح بیشتر :
خط ۱ : Rewrite (بازنویسی) را فعال میکنیم.
خط ۲ : بازنویسی بر پایه ریشه انجام میشه.
خط ۳ : مقدار شرطی برای خط بعد هست و میگه اگه هاست مربوط به URL درخواستی (منظور همون domain.com یا domain1.com بدون www هست) برابر با domain.com نبود (NC یعنی به حروف بزرگ و کوچیک حساس نشو !)
خط ۴: منظور از *. اینه که هر چی بعد از نام هاست در ادامه URL بود را با دامنه domain.com فراخوانی کن ! (L یعنی دیگه شرایط و حالت های بعدی را نمیخواد بررسی کنی و کار را تموم کن. R=301 هم میگه کلاً مسیر را اشتباه اومدی و از این به بعد مسیری که من دارم بهش انتقال میدم را در نظر بگیر که این برای موتور های جستجو معنی داره)

حالا اگه ۱۰۰ تا دامنه را هم توی cpanel روی هاستتون Park کنید.با هر دامنه و مسیری که کاربران توی مرورگرشون بزنن به دامنه domain.com که دامنه اصلی هست و همون مسیر درخواستی منتقل میشوند.

از دسترس خارج کردن موقتی سایت جهت بروزرسانی

نویسنده:
17 اکتبر 14

اگه تا حالا ساخت و پشتیبانی وب سایتی را بر عهده گرفته باشین یکی از مواردی که حتماً باهاش روبرو شدین اینه که قصد بروزرسانی سایت را دارین و جهت انجام تغییرات و بررسی درستی آن نیاز به چند ساعت کار هست و در این حین نباید کسی روی سایت فعالیتی داشته باشه.

به این عملیات که بهش بروزرسانی یا رفع مشکلات یا Maintenance گفته میشه بایستی سایت را از دسترسی دیگران البته بجز خودمون خارج کنیم. اما چطوری :

این کار هم مثل خیلی کار های دیگه یک راه حل ثابت و مشخصی نداره ، اما اصولی‌ترین راهی که دیدم و ازش استفاده میکنم این هست که یک فایل با توضیحات مربوط به عملیاتی که انجام میدیم روی سرور ایجاد کنیم و توی فایل htaccess. بگیم اگه کسی فایلی غیر از این فایل را درخواست کرد و ip وی هم مربوط به ما نبود بفرستش به صفحه مورد نظر ما.

پس فایل htaccess. این خواهد بود :

RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^xxx\.xxx\.xxx\.xxx$

RewriteCond %{REQUEST_URI} !^/maintenance\.php$
RewriteRule ^(.*)$ maintenance\.php [L]

توجه : فراموش نکنید که ip خودتون را با xxx های خط دوم عوض کنید.

و فایل maintenatnce.php هم این خواهد بود :

<?php
  header('HTTP/1.1 503 Service Temporarily Unavailable',true,503);
  header('Status: 503 Service Temporarily Unavailable');
  header('Retry-After: 43200');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
  <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
  <title>Site Maintenance</title>
</head>
<body>
  <h1>Maintenance</h1>
  <p>The website is under maintenance at present.</p>
</body>
</html>

حالا با خیال راحت میتونیم تغییر و تحولات مد نظرمون را بدون مزاحم انجام بدیم.