apache mod_substitute、换行符、制表符和其他字符

jckbn6z7  于 2023-01-31  发布在  Apache
关注(0)|答案(1)|浏览(158)

我在使用mod_substitute写入特定字符时遇到问题,特别是换行符、制表符和|很不幸,Apache的手册页在这里帮不上什么忙。
我整理了这段代码:

<IfModule mod_substitute.c>
  AddOutputFilterByType SUBSTITUTE text/html
  Substitute "s|<head>|<head><script src=\"tracker.js\"></script>|ni"
</IfModule>

这样就可以正常工作了,但是我想在<head><script>之间添加一个新行和一个制表符,但是使用\n\t的标准正则表达式并不奏效,它只是在代码中打印出\n\t
我还尝试将整个JavaScript代码打印到替换中,但它包含|- 我无法逃避的角色
是否有方法可以完成此操作(格式化或转义|-characters)使用替换?有没有更好的方法来包含我可能没有想到的代码?

iqjalb3h

iqjalb3h1#

我还没有弄清楚换行符部分,但这对我处理斜线、引号和管道很有效(我不得不在Google提供的脚本代码中将所有单引号转换为双引号)

Substitute 's#<head>#<head><script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script><script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);} gtag("js", new Date());gtag("config", "G-XXXXXXXXXX");</script>#ni'

相关问题