我需要将此行添加到位于/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,但我不清楚如何处理
任何人都可以建议一个能够清楚解释它的资源,或者告诉我们,如果我正在寻找这份工作的正确工具,请告诉我吗?
我的操作系统是Cent OS 5.5,我正在运行LAMP服务器,如果这有很大的不同,apache 2。
由于
答案 0 :(得分: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
test
Foobarlol
RewriteRule ^(.*)$ /site/assets/sym/$1 [L,NS]
RewriteRule ^(.*)$ /site/assets/test/$1 [L,NS]
Bleh