Apache跨域资源共享(CORS)配置方法

作者:技术拾光

时间:2026-06-11

浏览:86

在Apache中配置跨域资源共享可通过修改主配置文件或使用.htaccess文件实现。需设置Header指令指定允许的来源、方法、请求头及预检有效期。建议将通配符替换为实际域名以增强安全性,并确保服务器能正确响应OPTIONS预检请求。

文章目录

在Apache中配置跨域资源共享(CORS)主要通过两种方式:修改配置文件或使用.htaccess文件。按照以下步骤操作即可完成配置。

Apache跨域资源共享(CORS)配置方法

方法一:修改Apache配置文件

Apache配置文件通常位于/etc/apache2/apache2.conf(Ubuntu/Debian系)或/etc/httpd/conf/httpd.conf(CentOS/RHEL系)。

编辑该文件,定位到需要配置的目录代码块(如、或),添加以下CORS头配置:


    # 允许所有来源访问
    Header set Access-Control-Allow-Origin "*"
    # 允许的HTTP方法
    Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
    # 允许的HTTP头
    Header set Access-Control-Allow-Headers "Content-Type, Authorization, X-Requested-With"
    # 预检请求的有效期(秒)
    Header set Access-Control-Max-Age "86400"

保存后,重启Apache使设置生效:

sudo systemctl restart apache2

方法二:使用.htaccess文件

若不想直接修改主配置文件,可使用.htaccess文件。在网站根目录下找到或创建.htaccess,写入以下内容:


    # 允许所有来源访问
    Header set Access-Control-Allow-Origin "*"
    # 允许的HTTP方法
    Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
    # 允许的HTTP头
    Header set Access-Control-Allow-Headers "Content-Type, Authorization, X-Requested-With"
    # 预检请求的有效期(秒)
    Header set Access-Control-Max-Age "86400"

前提是需要启用mod_headers模块。若未启用,执行以下命令:

sudo a2enmod headers

完成后,同样需要重启Apache使配置生效:

sudo systemctl restart apache2

注意事项

安全性方面,上线后建议避免直接使用通配符*,而将Access-Control-Allow-Origin设置为实际允许的域名,以提升安全性。

其次是预检请求(Preflight Request)。浏览器在发送某些复杂请求(例如带有自定义头的请求)时,会先发送一个OPTIONS请求进行试探。因此,需确保服务器能够正常响应此OPTIONS请求,否则业务逻辑将无法正常执行。

按照以上两种方法即可完成Apache的CORS配置。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章