【问题标题】:How to force lowercase url如何强制小写网址
【发布时间】:2021-09-05 20:57:27
【问题描述】:

如何在 Cloudflare 的 URL 中强制请求小写?

例如,如果 Cloudflare 收到对 https://example.com/signup/Test-Page-BLOG/ 的请求,则应将其重定向到 https://example.com/signup/test-page-blog/

是否可以使用 Cloudflare 页面规则或 Cloudflare 中的任何其他方法?

请指教。

永远感谢这个社区。​​p>

【问题讨论】:

    标签: nginx url-rewriting webserver cloudflare


    【解决方案1】:

    您可以为此使用 Cloudflare 工作者。您可以转到工人部分并粘贴此脚本:

    addEventListener('fetch', event => {
      event.respondWith(handleRequest(event.request))
    })
    
    /**
     * Fetch and log a request
     * @param {Request} request
     */
    async function handleRequest(request) {
      let url = request.url
      // console.log('New url: ', url.toLowerCase())
      console.log('Got request', request.url)
      
      if (url.toLowerCase() !== request.url) {
        return new Response('', { status: 301, headers: { 'Location': url.toLowerCase() } });
      } else {
        let response = await fetch(request)
        console.log('Got response', response.url)
        return response
      }
    }
    

    现在在右侧,您将看到一个窗口,您可以在其中创建GET 请求并查看结果。

    【讨论】:

    • 感谢您的回答,它有效,但所有传入请求都通过此代码,在这种情况下不适合我。如果您有任何替代方案,请提出建议。
    • 兄弟,这里有一个场景。当 URL 与 Workers 脚本匹配时,它将请求传递到 Workers 运行时。因此需要转为小写 URL 的请求将由工作人员负责。
    • 但在 Cloudflare 中,只有工作人员可以帮助您实现这些结果。
    猜你喜欢
    • 2011-06-21
    • 2011-09-14
    • 2011-10-07
    • 2011-10-24
    • 2012-10-01
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多