Articles of 正则expression式

Apache2的LocationMatch允许login索引,但没有别的?

我想要允许/myapp和/myapp/但不允许其他任何事情。 我如何configuration? 我试过这个: <LocationMatch "^/myapp/.+$"> LDAP here </LocationMatch> 我会假设不会打/myapp或/myapp/ ,但它似乎捕获这些URL。 如果我做 <LocationMatch "^/myapp/specificsubdirectory/.*$"> LDAP here </LocationMatch> 然后这工作,但我想阻止应用程序中的所有特定的子目录。

Logcheck:包含非拉丁字符的通配符

在我的邮件服务器上,我有一个自定义日志检查规则,如下所示,用于过滤来自传递的邮件: ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ deliver\.*\): msgid=.*: saved mail to.*$ 不幸的是,如果Message-Id中有非拉丁字符,那么msgid =。*通配符不匹配,所以如下所示的行通过filter: May 10 19:43:20 zapp deliver(matt): msgid=<20110510064307.3702.qmail@ÇöÀÌ01>: saved mail to spam Logcheck在内部使用egrep,并且我还没有find任何方法使周期字符包含非拉丁字符。 有任何想法吗?

正则expression式在HAProxy的资产pipe理reqrep

我使用这种URL在S3上托pipe资源: http ://cdn.site.com/image.jpg在我的应用程序中,我自动提供版本化的URL来强制浏览器在部署之后下载新文件:“/1.2.3 /image.jpg” 在每个部署中,我只想覆盖较旧的文件。 所以我需要在HAProxy的正则expression式来重写这个: 1.2.3/image.jpg 进入这个: http://cdn.site.com/image.jpg 另一个问题是:将HAProxyredirect请求(对用户可见),或者只是在'后面'这样做,所以这个redirect将是不可见的。 提前致谢!

nginx:未知的“script_filename”variables

我尝试使用script_filename时收到此错误 nginx: [emerg] unknown "script_filename" variable nginx: configuration file /etc/nginx/nginx.conf test failed 但是script_filename在fastcgi_params定义 fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; […]

rsync某些文件,除了其余的,忽略.svn /目录,recursion

我正在使用rsync从共享复制一些文件到另一个。 recursion地,我需要: 删除从原点删除的目标文件 只能同步php和js文件 排除其他所有文件types 不要删除目标上的.svn/目录 如果我使用这个: rsync -zavC –delete –include='*.php' –include='*.js' –exclude="*" \ /origiin /destination 然后rsync不recursion,因为exclude="*"排除所有文件,但也包括文件夹 如果我添加–include="*/"那么.svn/目录被删除(它也包含在内) 我怎样才能解决这个思维爆炸的困境? uname -a: Linux tux 3.9.2-1-ARCH#1 SMP PREEMPT Sat 5月11日20:31:08 CEST 2013 x86_64 GNU / Linux rsync版本: rsync 3.0.9-6 提前致谢

fail2ban监狱工作不正常

我试图用fail2ban阻止不可用的脚本请求到nginx。 # Noscript filter /etc/fail2ban/filter.d/nginx-noscript.conf: # # Block IPs trying to execute scripts such as .php, .pl, .exe and other funny scripts. # # Matches eg # 192.168.1.1 – – "GET /something.cgi # [Definition] failregex = ^<HOST> -.*GET.*(\.asp|\.exe|\.pl|\.cgi|\scgi) ignoreregex = 但是如果访问日志中的引用者拥有脚本标签,这也会产生一个命中。 例如:(我已经混淆了IP和引用者,并且我截断了多行,在真正的日志中,这四行是在一行上)。 1.2.3.4 – – [16/Dec/2013:18:01:10 +0100] "GET / HTTP/1.1" 301 178 "http://referrer.com/default.aspx" "Mozilla/5.0 (Windows […]

在rsyncpath中的某处列出子文件夹

我正在开发一个程序,它将以recursion方式“遍历”Linux存储库,查找与PXE相关的文件并创buildgPXEconfiguration。 我遇到了一个关于镜像上Ubuntu目录结构的问题。 /dists/precise/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/ 正如我们所看到的,有许多variables目录: precise , installer-$ARCH和$arch 我不知道为什么,但我的rsyncconfiguration不匹配任何current/images子文件夹。 UPD: + dists/ + dists/* + dists/*/main/ + dists/*/main/* + dists/*/main/*/current + dists/*/main/*/current/ + dists/*/main/*/current/images + dists/*/main/*/current/images/*** – * UPD:现在它在/current目录失败。 如果我最后用斜杠放电,我不会收到rsync,所以它停止一个目录。 这个或那个rsync不会比当前更深,所以我不会得到任何与当前configuration的images 。 我不想要任何非当前的configuration。 我如何正确地创build一个configuration,只包含main和唯一的networking启动及其内容。 UPD:rsync命令是rsync -r –no-motd –include-from=newinclude rsync://mirrors.kernel.org/ubuntu 解决scheme:好的,很好! 问题在于Ubuntu使用友好的方式来表示当前的版本和版本,并保持当前的符号链接。 如果你用-l标志启动rsync,你会发现它是一个到安装程序中的一个目录的链接 lrwxrwxrwx dists/trusty/main/installer-amd64/current -> 20101020ubuntu300

htaccess正则expression式不正确处理URL

我试图redirect(或“重写”)超过3000个url,我们更新了大部分内容页面的SEF,以删除不需要或不需要的ID号码。 这应该是一个简单的过程使用正则expression式; 然而,我正在学习正则expression式和htaccess比科学更“艺术”:-( 这是我有的规则: RewriteRule ^topics\/([-0-9a-zA-Z]+)?\/([0-9]+)(-)([0-9a-z,-]+)? http://example.net/topics/$1/$4 [L,R=301] 大部分url都是这样的: http://example.net/topics/management/6309-investing-proceeds-from-sale-of-a-farm-or-ranch 并与正则expression式工作正常; 但是,如果一篇文章以一个数字开头,那么这样的URL就是这样的: http://example.net/topics/management/3542-9-new-years-resolutions-for-cattle-producers 然后,正则expression式(上面)抓取的不仅仅是第一组4位ID数字,还抓住了应该留下的第一个数字(本例中为“9”),导致: http://example.net/topics/management/new-years-resolutions-for-cattle-producers 这显然不起作用。 另外,作为一个解决方法,我已经尝试创build一些自定义规则来处理这个格式的less数页面/ URL(在文章标题的开始处有一个数字),并且规则在正则expression式之前这个: Redirect 301 /topics/management/3542-9-new-years-resolutions-for-cattle-producers http://example.net/topics/management/9-new-years-resolutions-for-cattle-producers 要么 RewriteRule ^topics\/([-0-9a-zA-Z]+)?\/([0-9]{1,4}?)(-)([0-9,az,-]+)? http://example.net/topics/$1/$4 [L,R=301] 但是,当我这样做时,正则expression式规则(进一步向下的htaccess文件)仍然运行导致“9”被删除。 我已经testing了许多不同的正则expression式和htaccesstesting网站,他们都工作; 但是,它仍然在现场服务器上失败。 Web服务器是:Apache / 2.2.25(Unix)mod_hive / 4.0 mod_ssl / 2.2.25 OpenSSL / 1.0.0-fips mod_bwlimited / 1.4 mod_fcgid / 2.3.6 而且我已经联系了我的服务器/托pipe公司,他们说他们没有专业知识能够解决这个问题。 任何人都可以看到问题在这里? 我在这里和其他地方search了数百个论坛post,没有任何人有相同的问题。

如何检查LocationMatch正则expression式是否工作?

我有位置匹配正则expression式 ScriptAlias /script /var/www/somescript.bash Action some-handler /script virtual <LocationMatch "/(?:\w+:)?\/\/[^\/]+([^?#]+)/"> SetHandler some-handler </LocationMatch> 现在,当testing该正则expression式https://regex101.com/r/lO0aV1/1你可以看到该位置匹配,但somescript.bash永远不会执行。 mod_actions就这样了。 在错误日志中,我什么都看不到。 在访问日志中,我得到了404。 我怎样才能检查这个正则expression式工作? 无论如何,我可以logging吗?

Procmail过滤从和身体

我有一个脚本生成的电子邮件,每小时进来。 除了在某些条件下,我不需要看到它,所以我只是想过滤到自己的邮箱。 该消息来自cron,我想小心不要过滤掉其他cron消息,只有这个基于源和内容。 正文行(消息的第一行以它开头)我试图匹配的是: /etc/cron.hourly/scriptrun: 这是我想出来的是不工作。 我不知道我错了哪里。 :0 HB * ^From:.*[email protected] * ^Subject: {Cron * \/etc\/cron.hourly\/scriptrun .Save/ 任何想法将不胜感激。