.htaccess文件未被读取

时间:2015-04-03 19:51:35

标签: apache .htaccess centos

我的.htaccess文件没有被读取,我在/ var / www / html中放了一个.htaccess文件,其中包含

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"

然后我的http.conf文件看起来像这样

ServerRoot "/etc/httpd"
<Directory />
AllowOverride none
Require all denied
</Directory>

DocumentRoot "/var/www/html"

<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>

我要访问的文件位于我的/ var / www / html文件夹中,但是当我尝试从另一个服务器访问它时,我一直收到此错误

Image from origin 'http://serverB' has been blocked from loading by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://example.com' is therefore not allowed access.

为什么我的.htacces没有被阅读?如何才能阅读?

由于

3 个答案:

答案 0 :(得分:2)

您还需要允许AllowOverride All文件中的/html,我不确定为什么但我遇到同样的问题也请确保在保存.htaccess后重新启动apache否则更改将不适用。

另外,请确保您在其他地方没有任何其他.htaccess个文件,因为使用add可能会添加标头额外时间导致错误。

答案 1 :(得分:1)

尝试将此行添加到.htaccess文件中。

每当我使用反向代理时,我都面临同样的问题,因为它是我的开发机器,我只是将这些行添加到.htaccess文件中,它解决了这个问题。

<FilesMatch "\.(php)$">
  <IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
  </IfModule>
</FilesMatch>

答案 2 :(得分:0)

服务器上是否启用了mod_headers?检查此命令:

apache2ctl -M

如果没有,请使用以下命令启用它:

sudo a2enmod headers

之后重启apache服务器。

如果仍然无效,请检查以下答案: https://stackoverflow.com/a/13871027/2507790