V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iloveMonica
V2EX  ›  程序员

新手创建网页的疑问

  •  
  •   iloveMonica · 2022-09-13 08:43:17 +08:00 via iPad · 3288 次点击
    这是一个创建于 534 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想做一个 html ,需要通过特定的后缀访问,例如 xxx/aaa.html?token=woddjwmdkw,需要附加后面的参数访问,不带参数访问返回错误。不知道改怎么实现,服务端用的 nginx

    20 条回复    2022-09-13 17:17:17 +08:00
    luffy
        1
    luffy  
       2022-09-13 08:58:37 +08:00   ❤️ 3
    也许你需要了解下一门叫 java 的编程语言
    Radiation
        2
    Radiation  
       2022-09-13 09:07:25 +08:00
    js 有办法获取请求参数,不过前端限制,用处不大,最后加个后端来判断,比如 php ,c#,python 之类的
    Ashore
        3
    Ashore  
       2022-09-13 09:11:52 +08:00
    如果没后端的话在 js 中获取下参数,在 js 中判断。
    有后端的话交给后端做。
    kisshere
        4
    kisshere  
       2022-09-13 09:13:50 +08:00
    既然是 html 后缀,就交给 js 处理 token
    cmdOptionKana
        5
    cmdOptionKana  
       2022-09-13 09:15:34 +08:00
    你可以先在前端用 js 实现( js 可以获取网址的),在用户量有限的情况下,前端限制也够用了。

    如果需要更完善的功能,可以学一下 Node.js, Python, Go 之类的语言,在有 js 基础的前提下学习 Node 应该不会太难。
    gtchan13579
        6
    gtchan13579  
       2022-09-13 09:15:58 +08:00
    php 可以实现,相当于新建一个 php 文件,设置一个判断,然后把 html 页面的代码复制在下面就行了
    xuxuxu123
        7
    xuxuxu123  
       2022-09-13 09:16:37 +08:00
    看下 nodejs 的 koa2 框架,直接脚手架就可以弄一个出来;快得很
    villivateur
        8
    villivateur  
       2022-09-13 09:22:48 +08:00   ❤️ 1
    Nginx 可以获取到参数的,然后在 Nginx 里判断下参数,不对 return 403 就行
    imicksoft
        9
    imicksoft  
       2022-09-13 09:29:10 +08:00
    两个方向
    第一、如果不想开发动态网页,那就在服务器加 url 规则,但我这个不了解,你去搜吧
    第二、html 是静态网页,服务端做不了什么东西,但动态网页开发有一个 querystring 的东西是取网址问号后的参数的,那就如果没参数就返回错误,动态网页开发有 asp/php/jsp/.net/python/go 等
    stoluoyu
        10
    stoluoyu  
       2022-09-13 09:35:20 +08:00
    既然是放在 ng 中的静态网页,那就用 ng 获取参数然后处理。
    前端网页里 js 来做没啥用。
    wangmn
        11
    wangmn  
       2022-09-13 09:38:30 +08:00
    百度 关键词 nginx auth
    zzzzzzzzzy
        12
    zzzzzzzzzy  
       2022-09-13 09:40:48 +08:00
    nginx 可以执行 lua 代码
    TGl2aWQgIFNC
        13
    TGl2aWQgIFNC  
       2022-09-13 09:45:12 +08:00
    要求不高,就大概防一下的话,直接前端用 js 判断得了
    dudubaba
        14
    dudubaba  
       2022-09-13 10:25:10 +08:00
    nginx 里正则一下完事
    yaoyao1128
        15
    yaoyao1128  
       2022-09-13 10:30:57 +08:00 via iPhone
    Archeb
        16
    Archeb  
       2022-09-13 10:41:07 +08:00
    纯前端方案:把网页数据用 aes 加密一下,后面的参数作为密钥,然后 JS 解密输出 html ,参数不对就提示错误。
    oott123
        17
    oott123  
       2022-09-13 10:42:38 +08:00   ❤️ 1
    nginx 配置:

    map $arg_token $secret_path {
    "woddjwmdkw" /my_very_secret_file_name.html;
    default /access_denied.html;
    }

    # ....

    server {
    # ...
    location /aaa.html {
    root /usr/share/nginx/secret/path;
    try_files $secret_path =404;
    }
    # ...
    }


    然后在 /usr/share/nginx/secret/path 下放两个文件,一个叫 my_very_secret_file_name.html ,一个叫 access_denied.html ,前者是你的网页,后者是 token 错误返回的网页
    Tink
        18
    Tink  
       2022-09-13 11:20:09 +08:00
    nginx
    com781517552
        19
    com781517552  
       2022-09-13 16:29:56 +08:00
    我寻思 JS 不就能做吗
    pytth
        20
    pytth  
       2022-09-13 17:17:17 +08:00   ❤️ 2
    html+js 可以做

    <!DOCTYPE html>
    <html>
    <head>
    <title>demo</title>
    <meta charset="utf-8">
    </head>
    <body>

    <h1>test</h1>

    <script type="text/javascript">
    window.onload=function() {

    // 截取 url 的 token
    const url = window.location.href;
    const token_ = url.split('?')[1];
    const token=new URLSearchParams(token_).get('token')

    // 判断 token 是否为空
    if (token) {
    alert(token)
    }else{
    alert('没有 token')
    }
    }
    </script>
    </body>
    </html>
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2759 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 15:03 · PVG 23:03 · LAX 07:03 · JFK 10:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.