AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[regex](server)

Martin Hope
Tomáš Bažant
Asked: 2023-02-10 04:34:17 +0800 CST

需要一个正则表达式来匹配 3-member 简单系列

  • 5

我需要一个匹配以下示例字符串的正则表达式:

 Example 1: "red, blue, and hot"
 Example 2: "red, blue, or hot"

三个单独的词,前两个后跟逗号,连词“and”(案例 1)或“or”(案例 2)。

Case 1: "<word01>, <word02>, and <word03>"
Case 2: "<word01>, <word02>, or <word03>"

我有以下(\w+,(\s|\n)+){2}(and|or)成功匹配字符串的正则表达式,但它也会匹配字符串中包含我的示例表达式的字符串。如果字符串只包含我的示例表达式而没有其他内容,我只希望匹配成功。

换句话说green, red, blue, and hot不应该匹配,因为它在匹配之前包含一个额外的单词和逗号。

regex
  • 1 个回答
  • 53 Views
Martin Hope
moogeek
Asked: 2022-04-04 23:52:07 +0800 CST

Nginx 匹配 if 语句中的任何单词,除了一个

  • 2

我在nginx配置中使用以下 if 语句正则表达式来匹配和阻止请求 uri 中的一些错误请求。这些错误的查询总是只请求一个参数,但每次都使用随机名称(和字母计数)。他们也总是点击主页。

错误查询示例: /?some1bad0query2=nminkvywbjfdysnvhp

if ($request_uri ~ "[\w]{5,25}\=[\w]{5,25}$") {
  return 403;
}

如何修改此正则表达式以排除匹配某些参数名称,例如keyor query(ie. /?query=somestring) ?

我尝试使用圆括号,?(!query)但没有运气。

请帮我纠正这个正则表达式语句。提前致谢。

nginx regex
  • 1 个回答
  • 897 Views
Martin Hope
dinastar66
Asked: 2022-03-09 03:59:43 +0800 CST

nginx 反向代理 IP_adr/1881 到 localhost:1881 proxy_pass

  • 0

我已经阅读了这篇文章,并尝试了很多事情,但我遇到了重写正则表达式的问题。 这里

我有许多 node.js 进程作为后端,总是使用不同的端口来访问。

在同一台服务器上使用 Nginx 反向代理,我想传递例如:https://my-site/1881到http://127.0.0.1:1881proxy_pass。

我可以从中得到 1881,my-site/1881但我总是在最后127.0.0.1:1881/1881。或者 Nginx 错误。我不确切知道如何删除 /1881 rewrite。

我试过了:

location ~ ^/(?<port>\d\d\d\d)$ {            #Ok

        rewrite "^/[0-9]{4}(.*)$" $1 break;  #try and retry here
        proxy_pass http://127.0.0.1:$port;   #Ok
}

感谢您的帮助,祝您有美好的一天

rewrite port nginx regex
  • 1 个回答
  • 87 Views
Martin Hope
farroh
Asked: 2021-11-02 05:41:24 +0800 CST

htaccess 匹配所有单词直到最后一个斜杠并重定向 301

  • 0

我试图逃避一切,直到最后一个斜线,即使中间有一个斜线。例子:

/site_url/courses/cat1/cat2/subcat/coursename

至

/site_url/course/courseName 

或者

/site_url/course/courseName 

我如何使用 Nginx 或 Apache 实现这一点?

.htaccess nginx regex apache2
  • 1 个回答
  • 66 Views
Martin Hope
SimpleNiko
Asked: 2021-10-18 04:59:09 +0800 CST

Docker运行环境变量正则表达式/通配符

  • 1

在我的主机上,我运行以下命令:

export test_1="Hello"
export test_2="There"

启动 Docker 容器:

docker run -it -e test* centos 

env 变量在容器中不可用。我想要实现的目标是可能的吗?

regex docker
  • 1 个回答
  • 521 Views
Martin Hope
cnxsoft
Asked: 2021-09-06 01:59:26 +0800 CST

带有查询字符串的 nginx 中的移动重定向

  • 0

我正在尝试使用 nginx 将移动访问者重定向到 AMP 页面。我基本上使用了脚本@ https://gist.github.com/dangayle/2919206并进行了建议的修改,加上答案@add a URL suffix path (for mobile AMP) 中的元素,而不会在nginx _中引起重定向循环

这里的主要区别是我不是试图将移动用户重定向到移动子域,而是添加一个查询字符串(“?amp = 1”):

这是 nginx.conf 的 HTTP 块中的代码:

    default 0;

    "~* (android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino" 1;

    "~* ^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-)" 1;
}

以及位置 / 中的剩余代码:

set $mobile_rewrite do_not_perform;

if ($mobile_agent = 1){
    set $mobile_rewrite perform;
}

if ($mobile_agent = 1){
    set $mobile_rewrite perform;
}

#check if query arg = yes (example.com?mobile=yes), set variable
if ($arg_mobile = 'yes') { 
    add_header Set-Cookie mobile=yes;
    set $mobile_rewrite perform;
}

#check if cookie mobile=yes, set variable
if ($cookie_mobile = 'yes') { 
    set $mobile_rewrite perform;
}

#check if cookie mobile=no, break
if ($cookie_mobile = 'no') { 
    set $mobile_rewrite do_not_perform;
}

#check if query arg = no (example.com?mobile=no), break
if ($arg_mobile = 'no') { 
    add_header Set-Cookie mobile=no;
}

#if $mobile_rewrite = perform, do the redirect
if ($mobile_rewrite = perform) {
    rewrite ^.*(?<!/?amp=1)$ $scheme://www.cnx-software.es$request_uri?amp=1 break;
}

我仍然遇到重定向卡在循环中的麻烦。例如:https ://www.cnx-software.es/2021/08/31/arm-china-ahora-es-totalmente-independiente-de-arm/?amp=1?amp=1&=1?amp= 1&=1?amp=1&=1?amp=1&=1?amp=1&=1 ..

问题可能是重写行,但我已经能够查明确切的问题。

mobile-devices redirect nginx regex
  • 1 个回答
  • 223 Views
Martin Hope
Ress
Asked: 2021-08-21 01:05:21 +0800 CST

从ansible上的字符串中删除特定字符

  • 1

我有以下

- set_fact:
   test_result: " {{ htmlres.content | regex_search('http://website([0-9]+)', '\\1') }}"

使用调试,这将返回以下内容" '[01]'"

只想要数字,我使用该replace()函数进行了一些实验,并且能够[ ]通过添加以下内容来去除:

- set_fact:
   test_result: " {{ htmlres.content | regex_search('http://website([0-9]+)', '\\1')
| replace('[','') | replace(']','') }}"

我现在的问题是输出现在是," '01'我似乎无法删除'或空格。

由于某种原因添加| trim到末尾不会删除空格,并且添加regex_search('\'','')似乎也不会逃避角色和工作。

我错过了什么吗?

这是第一次删除后调试的输出:

"msg": [
    " '01'",
    ...

谢谢

regex ansible ansible-playbook strings
  • 1 个回答
  • 8903 Views
Martin Hope
Altimus Prime
Asked: 2021-06-19 07:39:05 +0800 CST

你如何在后缀中使用正则表达式标志?

  • 0

在 Postfix 中,我们可以使用正则表达式应用一些基本的标头、正文、客户端检查。我想使用标志。

我在 header_checks 文件中添加了以下内容:

/some(\s|_|-)words(\s|_|-)here/gmi REJECT

并通过发送自己和标题中包含这些词的电子邮件来测试它,但我在邮件日志中收到错误说明unknown regexp option "g": skipping this rule

是否有适当的方法来应用标志或后缀正则表达式根本不使用或确认某些标志?

postfix regex
  • 1 个回答
  • 212 Views
Martin Hope
Jas Har
Asked: 2021-06-19 03:56:50 +0800 CST

Fail2ban 正则表达式工作但不禁止。改为 DNS 警告

  • 1

我在使用fail2ban 时遇到了以下问题(已经解决了),并将其放在堆栈溢出上,所以我现在把它放在这里。

所以,我已经阅读了几天的问题,似乎没有在任何地方找到解决方案。我正在 Web 服务器实验室进行一些测试,我已经设置了两个 VM(Ubuntu 20.04)服务器和客户端。在服务器上,我配置了一个 PHP 登录应用程序,只要有人登录失败,就可以给我这个日志。

root@local:/var/log/apache2# tail -f error.log
[Fri Jun 18 10:13:37.657446 2021] [php7:notice] [pid 2465] [client 192.168.1.11:44750] [error] failed login, referer: http://192.168.1.10/index.php
[Fri Jun 18 10:13:41.434454 2021] [php7:notice] [pid 2465] [client 192.168.1.11:44750] [error] failed login, referer: http://192.168.1.10/index.php
[Fri Jun 18 10:13:46.236750 2021] [php7:notice] [pid 2465] [client 192.168.1.11:44750] [error] failed login, referer: http://192.168.1.10/index.php

并且 Fail2Ban v0.10.2 配置为捕获它。/etc/fail2ban/jail.local:

[login-ban]
enabled   = true
port      = http,https
filter    = login-ban
logpath  = /var/log/apache2/error.log
maxretry = 3
findtime  = 180
bantime = 60

/etc/fail2ban/filter.d/login-ban.conf:

[Definition]
failregex =  ^\[.*\]\s\[.*]\s\[.*].*\[client.*<HOST>\].*\[error\].*
ignoreregex =

现在,如果我使用 fail2ban-regex 检查,正则表达式可以完美运行:

fail2ban-regex /var/log/apache2/error.log /etc/fail2ban/filter.d/login-ban.conf --print-all-matched

我明白了

|- Matched line(s):
|  [Fri Jun 18 10:36:07.312503 2021] [php7:notice] [pid 780] [client 192.168.1.11:44754] [error] failed login, referer: http://192.168.1.10/index.php
|  [Fri Jun 18 10:36:14.417955 2021] [php7:notice] [pid 784] [client 192.168.1.11:44756] [error] failed login, referer: http://192.168.1.10/index.php

但是fail2ban没有禁止IP,fail2ban.log给我一个DNS警告:

2021-06-18 10:50:22,083 fail2ban.ipdns          [2154]: WARNING Determined IP using DNS Lookup: 8 = {'0.0.0.8'}
2021-06-18 10:50:22,085 fail2ban.filter         [2154]: INFO    [login-ban] Found 0.0.0.8 - 2021-06-18 10:50:22

我已经尝试将 usedns 参数设置为“no”和“raw”,唯一完成的是摆脱 dns 警告日志,仍然没有禁止并且没有记录尝试登录的主机。

我希望这是足够的信息,并且这将帮助像我一样的人。

logging regex fail2ban
  • 1 个回答
  • 278 Views
Martin Hope
TELA
Asked: 2021-06-13 16:11:26 +0800 CST

Nginx 位置匹配正则表达式年/月/日/*

  • 1

我有一些旧的 url 模式可以重定向到 nginx 中的新位置。

一个典型的干净 url 看起来像example.com/2021/06/13/78676.html?..

我大致尝试匹配每个块中的位数,例如:

location ~ "^[0-9]{4}/[0-9]{2}/[0-9]{2}/([0-9]+).html" {
   rewrite ^ /archive.php?q=$1;
}

请问我到底哪里错了..

nginx regex
  • 1 个回答
  • 1132 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve