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

新手创建网页的疑问

  •  
  •   iloveMonica · 85 天前 via iPad · 2828 次点击
    这是一个创建于 85 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    如果需要更完善的功能,可以学一下 Node.js, Python, Go 之类的语言,在有 js 基础的前提下学习 Node 应该不会太难。
    gtchan13579
        6
    gtchan13579  
       85 天前
    php 可以实现,相当于新建一个 php 文件,设置一个判断,然后把 html 页面的代码复制在下面就行了
    xuxuxu123
        7
    xuxuxu123  
       85 天前
    看下 nodejs 的 koa2 框架,直接脚手架就可以弄一个出来;快得很
    villivateur
        8
    villivateur  
       85 天前   ❤️ 1
    Nginx 可以获取到参数的,然后在 Nginx 里判断下参数,不对 return 403 就行
    imicksoft
        9
    imicksoft  
       85 天前
    两个方向
    第一、如果不想开发动态网页,那就在服务器加 url 规则,但我这个不了解,你去搜吧
    第二、html 是静态网页,服务端做不了什么东西,但动态网页开发有一个 querystring 的东西是取网址问号后的参数的,那就如果没参数就返回错误,动态网页开发有 asp/php/jsp/.net/python/go 等
    stoluoyu
        10
    stoluoyu  
       85 天前
    既然是放在 ng 中的静态网页,那就用 ng 获取参数然后处理。
    前端网页里 js 来做没啥用。
    wangmn
        11
    wangmn  
       85 天前
    百度 关键词 nginx auth
    zzzzzzzzzy
        12
    zzzzzzzzzy  
       85 天前
    nginx 可以执行 lua 代码
    TGl2aWQgIFNC
        13
    TGl2aWQgIFNC  
       85 天前
    要求不高,就大概防一下的话,直接前端用 js 判断得了
    dudubaba
        14
    dudubaba  
       85 天前
    nginx 里正则一下完事
    Archeb
        16
    Archeb  
       85 天前
    纯前端方案:把网页数据用 aes 加密一下,后面的参数作为密钥,然后 JS 解密输出 html ,参数不对就提示错误。
    oott123
        17
    oott123  
       85 天前   ❤️ 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  
       85 天前
    nginx
    com781517552
        19
    com781517552  
       85 天前
    我寻思 JS 不就能做吗
    pytth
        20
    pytth  
       85 天前   ❤️ 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   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2116 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 16:46 · PVG 00:46 · LAX 08:46 · JFK 11:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.