CORS راهی استاندارد برای دسترسی به منابع موجود روی یک دامنه است. یکی از کاربرد های CORS این است که برای درخواست های بینِ دامنه ای استفاده می شود. به طور پیش فرض، درخواست های متقابل دامنه در وب سرور آپاچی غیر فعال است. شما باید Access Control Allow Origin را تنظیم کنید تا CORS (Cross Origin Resource Sharing) را در آپاچی فعال کنید. با انجام مراحل ذکر شده در این آموزش می توانید به فعال سازی CORS در آپاچی بپردازید. همچنین در این آموزش خواهیم گفت که چطور خطای Access Control Allow Origin را در وب سرور آپاچی رفع کنید.
نحوه فعال سازی CORS در آپاچی
مراحل زیر را به طور دقیق اجرا کنید تا به راحتی بتوانید CORS را در وب سرور آپاچی فعال کنید. برای این کار 3 مرحله وجود دارد:
- فعال کردن ماژول headers
- فعال سازی CORS در آپاچی
- راه اندازی مجدد سرور آپاچی
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