我已经为我的localhost(apache)服务器启用了URL重写模式。但是一旦我尝试通过我的localhost访问远程URL。它会提示错误:
"Internal Server Error" or sometime "Not Found"
如果我在htaccess文件中做了一点改动(通过删除[P]),那么它在控制台日志中显示了预期的URL,但仍然提示错误为 -
" No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin http://localhost:8080' is therefore not allowed access."
我的.htaccess文件如下:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{SERVER_PORT} !^8080$
RewriteRule ^(.*) http://%{SERVER_NAME}:8080%{REQUEST_URI} [P]
RewriteRule ^(.*) http://<Remote_ip_address>:<port_no>%{REQUEST_URI} [P]
</IfModule>
任何建议都将受到高度赞赏!!
答案 0 :(得分:3)
这是一个有意的安全功能(Same-origin policy)。您需要在目标服务器上启用CORS(跨源资源共享)(不在此处的.htaccess
文件中,而是在Remote_ip_address
上)。以下是一些资源:
答案 1 :(得分:0)
下面的此解决方案在位于其中的vhost文件中对我有用:
/etc/httpd/conf.d/vhosts/xxxx.conf
SetEnvIf Origin "^http(s)?://(.+\.)?(yourdomain\.com|otherdomain\.com)$" origin_is=$0
Header set Access-Control-Allow-Origin %{origin_is}e env=origin_is
Header set Access-Control-Allow-Credentials "true"
Header always set Access-Control-Allow-Headers "Authorization"
Header always set Access-Control-Allow-Methods "GET"
不要忘记