使用NGINX和一些定制的php配置为漂亮的url获取AngularJS html5api

使用NGINX和一些定制的php配置为漂亮的url获取AngularJS html5api,angularjs,nginx,Angularjs,Nginx,我有一个网站,有附属网址,需要从子域和目录访问。例如: http://someaffiliate.example.com http://www.example.com/someaffiliate 为了实现这一点,我将NGINX配置为检查文件或目录是否存在,如果不存在,则将其转发到一个php页面,该页面使用$uri收集一些附属数据,然后转发到子域URL server { listen 80 default_server; listen [::]:80 default_server

我有一个网站,有附属网址,需要从子域和目录访问。例如:

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上的水疗中心。我需要使用HTML5API,这样链接可以很漂亮。例如,如果分支机构希望使用URL:

http://someaffiliate.example.com/products
而不是

http://someaffiliate.example.com/#/products
这不起作用,因为NGIX在到达Angular之前拦截,并将其路由到我的php脚本,该脚本将其转发到:

http://products.example.com
我的angular应用程序中的链接也得到了同样的处理。所以基本上整个东西都坏了


关于如何实现这一点,您有什么想法吗?

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

<base href="/">

请参见此处的示例:

是的,我有。问题其实不是路由,甚至不是nginx配置,而是两者之间的冲突。我需要第三个选择,如何让它工作,我不知道这可能是什么。