CS-Polaris 2024-07-11 23:10 采纳率: 42.9%
浏览 33

同一域名不同路径,访问不同的前端资源

一个阿里云的例子,这是没有输入任何端口,只通过域名和路径就可以访问到不同页面

https://cn.aliyun.com/benefit/waitou/V2?from_alibabacloud=&utm_content=se_1018079436

https://cn.aliyun.com/price?from_alibabacloud=

重点在
https://cn.aliyun.com/benefit/
https://cn.aliyun.com/price

我也想配置成这个效果,在nginx中如何做?即同一个域名,不同的路径

server {
    listen       80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

        # version 2
        location  /app1/ {
                alias /usr/share/nginx/html/app1/;
                index index.html index.htm;
                try_files $uri $uri/ /app1/index.html;
                #try_files $uri $uri/ /usr/share/nginx/html/app1/index.html;
                sub_filter 'href="/css/' 'href="/app1/css/';
                sub_filter 'src="/js/' 'src="/app1/js/';
                sub_filter 'src="/images/' 'src="/app1/images/';
                sub_filter_once off;
        }

        location  /app2/ {
                alias /usr/share/nginx/html/app2/;
                index index.html index.htm;
                try_files $uri $uri/ /app2/index.html;
                #try_files $uri $uri/ /usr/share/nginx/html/app2/index.html;
                sub_filter 'href="/css/' 'href="/app2/css/';
                sub_filter 'src="/js/' 'src="/app2/js/';
                sub_filter 'src="/images/' 'src="/app2/images/';
                sub_filter_once off;
        }
}

以上是我的配置,但没有用

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2024-07-11 23:10
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    你好!很高兴帮你解决 Nginx 配置的问题。从你提供的配置来看,你已经设置了两个 location 块来分别处理 /app1//app2/ 路径下的请求,但是似乎没有设置正确的路径来匹配 benefitprice

    要实现你的需求,你需要修改 location 块的路径匹配规则,以匹配 benefitprice 这两个路径。下面是一些修改建议:

    1. 修改 location 路径:将 /app1//app2/ 修改为对应的路径,比如 /benefit//price/

    2. 使用 alias 指令alias 指令用于定义文件或目录的别名路径。确保你的前端资源文件在正确的目录下。

    3. 使用 try_files 指令try_files 指令用于定义请求的处理顺序,如果前面的文件不存在,则尝试下一个。

    4. 使用 sub_filter 指令sub_filter 用于替换响应体中的文本,确保资源路径正确。

    根据你的要求,这里是一个修改后的 Nginx 配置示例:

    server {
        listen       80;
        server_name  yourdomain.com;  # 替换为你的域名
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    
        location /benefit/ {
            alias /usr/share/nginx/html/benefit/;
            try_files $uri $uri/ /benefit/index.html;
            sub_filter 'href="/css/' 'href="/benefit/css/';
            sub_filter 'src="/js/' 'src="/benefit/js/';
            sub_filter 'src="/images/' 'src="/benefit/images/';
            sub_filter_once off;
        }
    
        location /price/ {
            alias /usr/share/nginx/html/price/;
            try_files $uri $uri/ /price/index.html;
            sub_filter 'href="/css/' 'href="/price/css/';
            sub_filter 'src="/js/' 'src="/price/js/';
            sub_filter 'src="/images/' 'src="/price/images/';
            sub_filter_once off;
        }
    }
    

    请将 yourdomain.com 替换为你的实际域名,同时确保 /usr/share/nginx/html/benefit//usr/share/nginx/html/price/ 路径下有对应的前端资源文件。

    注意:如果你的域名已经配置了 HTTPS,你可能需要在 server 块中添加 SSL 相关的配置。

    如果你需要进一步的帮助,或者有其他问题,请随时告诉我。我可以提供更多的信息和指导。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月11日