获取AngularJS html5api用于使用NGINX和一些自定义php配置的漂亮Urls

时间:2015-03-24 07:04:23

标签: angularjs nginx

我有一个网站,其中包含联盟网址,需要从子网站和目录访问。例如:

http://someaffiliate.example.com
http://www.example.com/someaffiliate

为了实现这一点,我已经配置了NGINX以检查文件或目录是否存在,如果没有它转发到php页面,该页面通过使用$ uri然后转发到子域URL来收集一些联盟数据。

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html/app/;
    index index.html index.htm;

    server_name localhost;

    location / {
        try_files $uri $uri/ $uri.html /index.php?q=$uri;
    }
}

这个工作得很好,问题是这个网站现在是在AngularJS上运行的SPA。我需要使用HTML5 Api,所以链接可以很漂亮。例如,如果关联企业想要使用URL:

http://someaffiliate.example.com/products

而不是

http://someaffiliate.example.com/#/products

这不起作用,因为NGIX在到达Angular之前会拦截它到我的php脚本,然后将其转发到:

http://products.example.com

我的角应用程序中的链接也得到相同的处理。所以基本上整个事情都被打破了。

关于如何让它发挥作用的任何想法?

1 个答案:

答案 0 :(得分:0)

我对ngix没有太多经验,但你记得在index.html中设置基本网址吗?我知道这是设置路由时的常见问题。

<base href="/">

在此处查看此示例: http://andredublin.github.io/blog/2014/08/18/nginx-and-angularjs-url-routing/