Serverآموزش

نحوه فعال سازی CORS در آپاچی و رفع خطای Access Control Allow Origin

CORS راهی استاندارد برای دسترسی به منابع موجود روی یک دامنه است. یکی از کاربرد های CORS این است که برای درخواست‌ های بینِ دامنه‌ ای استفاده می‌ شود. به طور پیش فرض، درخواست های متقابل دامنه در وب سرور آپاچی غیر فعال است. شما باید Access Control Allow Origin را تنظیم کنید تا CORS (Cross Origin Resource Sharing) را در آپاچی فعال کنید. با انجام مراحل ذکر شده در این آموزش می توانید به فعال سازی CORS در آپاچی بپردازید. همچنین در این آموزش خواهیم گفت که چطور خطای Access Control Allow Origin را در وب سرور آپاچی رفع کنید.

نحوه فعال سازی CORS در آپاچی

مراحل زیر را به طور دقیق اجرا کنید تا به راحتی بتوانید CORS را در وب سرور آپاچی فعال کنید. برای این کار 3 مرحله وجود دارد:

  1. فعال کردن ماژول headers
  2. فعال سازی CORS در آپاچی
  3. راه اندازی مجدد سرور آپاچی

1. فعال کردن ماژول headers

برای فعال کردن CORS در آپاچی باید ماژول headers را فعال کنید.

Ubuntu/Debian

در لینوکس ubuntu/debian، ترمینال را باز کرده و دستور زیر را برای فعال کردن ماژول هدر وارد کرده و اجرا کنید.

$ sudo a2enmod headers

CentOS/Redhat/Fedora

در لینوکس CentOS/Redhat/Fedora، فایل پیکربندی آپاچی httpd.conf را باز کنید.

LoadModule headers_module modules/mod_headers.so

2. فعال سازی CORS در آپاچی

در مرحله بعد، بسته به نیاز خود، دستورالعمل “Header add Access-Control-Allow-Origin *” را به فایل پیکربندی اصلی آپاچی یا فایل htaccess. یا فایل پیکربندی میزبان مجازی اضافه کنید. اگر آن را به فایل پیکربندی اصلی خود اضافه کنید، CORS برای همه وب سایت های سرور شما فعال می شود. اگر آن را به فایل htaccess. یا فایل پیکربندی میزبان مجازی اضافه کنید، فقط برای یک وب سایت فایل فعال خواهد شد. برای مثال:

افزودن تگ دایرکتوری در فایل پیکربندی اصلی

<Directory /var/www/html>
   ...
   Header set Access-Control-Allow-Origin "*"
   ...
</Directory>

اضافه کردن دستور add Access-Control-Allow-Origin به فایل htaccess

   ...
   Header add Access-Control-Allow-Origin "*"
   ...

افزودن تگ VirtualHost در فایل پیکربندی میزبان مجازی

<VirtualHost *:443>
   ...
   Header add Access-Control-Allow-Origin "*"
   ...
</VirtualHost>

فعال کردن CORS در همه وب سایت ها

اگر می خواهید CORS را برای همه وب سایت های خود فعال کنید، یعنی درخواست های متقابل دامنه را از همه وب سایت ها بپذیرید، دستور زیر را وارد و اجرا کنید.

Header add Access-Control-Allow-Origin *;

فعال کردن CORS برای یک دامنه

اگر می‌ خواهید CORS را برای یک دامنه وب‌ سایت (مثلا example.com) فعال کنید، آن دامنه را به جای کاراکتر * قرار دهید.

Header add Access-Control-Allow-Origin "*";
Header add Access-Control-Allow-Origin "example.com";

فعال کردن CORS برای چندین دامنه


اگر می‌ خواهید CORS را برای چندین دامنه فعال کنید (مانند example1.com، example2.com،example3.com)، آن ها را جداگانه و پشت سر هم وارد و اجرا کنید.

Header add Access-Control-Allow-Origin "example1.com";
Header add Access-Control-Allow-Origin "example2.com";
Header add Access-Control-Allow-Origin "example3.com";

فعال کردن CORS برای لوکال هاست

اگر می خواهید CORS را برای لوکال هاست فعال کنید، 127.0.0.1 یا localhost را به جای نام دامنه در دستور زیر قرار دهید.

Header add Access-Control-Allow-Origin "localhost";

3. راه اندازی مجدد سرور آپاچی

برای اعمال تغییرات، با دستور زیر وب سرور آپاچی را مجددا راه اندازی کنید.

-------------- On Debian/Ubuntu -------------- 
# apache2 -t
# systemctl restart apache2.service

-------------- On RHEL/CentOS/Fedora --------------
# httpd -t
# systemctl restart httpd.service

می توانید از ابزار های آنلاین رایگان مانند Test CORS برای بررسی اینکه آیا وب سایت شما CORS را می پذیرد یا خیر استفاده کنید.

منبع: ubiq.co

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

دکمه بازگشت به بالا