Redirect کردن دامنه ی با www به دامنه بدون www

دامنه
سی-پنل

(Seyed Mohammad Hassan) #1

سلام.
من میخوام که دامنه ی با www سایت خودم رو به دامنه ی با www منتقل کنم.
یعنی وقتی که یک کاربر آدرس www.medadnoki.com را وارد میکنه، با کد 301 به آدرس medadnoki.com ریدایرکت بشه.
اما نمیخوام برای حل این مشکل، تنظیمات وب سرور که nginx است رو تغییر بدم.

در این آموزش من از داخل cpanel اقدام کردم و این تنظیمات رو انجام دادم اما ریدایرکت به درستی انجام نشد.

میخواستم بدونم راهی هست که با cpanel این کار رو انجام بدم یا حتما باید از طریق تنظیمات nginx اقدام کنم؟


(آرتا سیدزاده) #2

سلام

این کار رو باید روی خود سرور انجام بدین. نیازی به تغییرات وب سرور ندارید. تو فایل .htaccess کد زیر رو بزارین و مشکلتون حل میشه.

# Redirect www to non-www
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.medadnoki\.com [NC]
RewriteRule ^(.*)$ https://medadnoki.com/$1 [L,R=301]

اگر دامنه SSL نداره، s رو از https حذف کنین.


(Seyed Mohammad Hassan) #3

این کار رو تست کردم اما جواب نداد


(آرتا سیدزاده) #4

کد منطقی می خواین برای htaccess از کد زیر استفاده کنین:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

نکته: این رو باید بزارید بالاترین نقطه در فایل htaccess

اگر برنامه نویسی PHP کار می کنید:

if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') {
    if(!headers_sent()) {
        header("Status: 301 Moved Permanently");
        header(sprintf(
            'Location: https://%s%s',
            $_SERVER['HTTP_HOST'],
            $_SERVER['REQUEST_URI']
        ));
        exit();
    }
}