gpt4 book ai didi

linux - 在特定的 htaccess 文件中搜索和替换 - linux

转载 作者:太空狗 更新时间:2023-10-29 12:21:09 26 4
gpt4 key购买 nike

我需要将此行添加到位于 /home/*/site/assets/.htaccess 中的每个 .htaccess 文件其中 * 可以是任意数量的目录深度

我需要找到这段文字

RewriteRule ^(.*)$ /site/assets/sym/$1 [L,NS]

并在上面加一行,或者用这个替换

RewriteCond %{REQUEST_URI} !^/site/assets/sym
RewriteRule ^(.*)$ /site/assets/sym/$1 [L,NS]

我在网上看过这个 site但我不清楚如何处理

  1. 生成我要编辑的文件列表(因此找到与此路径匹配的所有文件:/home/*/site/assets/.htaccess)
  2. 在替换文本中添加换行符

任何人都可以建议一个资源来清楚地解释它,或者不能,让我知道我是否正在寻找适合这项工作的正确工具?

我的操作系统是 Cent OS 5.5,我正在运行一个 LAMP 服务器,如果这有很大的不同,apache 2。

谢谢

最佳答案

#!/bin/bash

类似的东西:

for dir in `find /home -type d | grep 'site/assets'`
do
htaccess="$dir/.htacess";
sed -ibak -e 's@RewriteRule \^\(.*\)\$ /site/assets/sym/\$1 \[L,NS\]@RewriteCond %{REQUEST_URI} !^/site/assets/sym\n\0@' $htaccess
done

在我的盒子上:

sed -e 's@RewriteRule \^\(.*\)\$ /site/assets/sym/\$1 \[L,NS\]@RewriteCond %{REQUEST_URI} !^/site/assets/sym\n\0@' test
Foobarlol

RewriteCond %{REQUEST_URI} !^/site/assets/sym
RewriteRule ^(.*)$ /site/assets/sym/$1 [L,NS]
RewriteRule ^(.*)$ /site/assets/test/$1 [L,NS]

Bleh

测试

Foobarlol

RewriteRule ^(.*)$ /site/assets/sym/$1 [L,NS]
RewriteRule ^(.*)$ /site/assets/test/$1 [L,NS]

Bleh

关于linux - 在特定的 htaccess 文件中搜索和替换 - linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7789581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com