2017-12-05 3 views
1

Ich muss bestimmte Zeilen in .htaccess-Dateien für viele verschiedene Websites auf einem Server auskommentieren.Kommentieren Sie Zeilen in mehreren .htaccess-Dateien in mehreren Verzeichnissen

die .htaccess-Dateien sind in Verzeichnissen wie folgt aus:

/home/siteA/public_html/.htaccess 

/home/siteB/public_html/.htaccess 

und so weiter ...

das sind die Code-Blöcke sind ich von allen .htaccess-Dateien kommentieren möchten:

<IfModule mod_suphp.c> 
suPHP_ConfigPath /home/bcrunch 
<Files php.ini> 
order allow,deny 
deny from all 
</Files> 
</IfModule> 

<Files ".user.ini"> 
<IfModule mod_authz_core.c> 
    Require all denied 
</IfModule> 
<IfModule !mod_authz_core.c> 
    Order deny,allow 
    Deny from all 
</IfModule> 
</Files> 

Ive versucht, die folgenden:

[email protected] [/home]# shopt -s globstar 
[email protected] [/home]# sed -i.bak -r '/<IfModule  mod_suphp\.c>/,/<\/IfModule>/ s/^/#/; /<Files 
"\.user\.ini">/,/<\/Files>/ s/^/#/' **/.htaccess 

Ich habe es auf einem Testverzeichnis getestet, das ich mit anderen Testunterverzeichnissen gemacht habe, und teste .htaccess Dateien mit dem obigen Inhalt und es funktionierte gut, aber sobald ich dieses von/home aus führe, wo ich ungefähr 30+ Seiten habe, hängt es lange Zeit und fängt an, mehr und mehr Speicher zu verbrauchen. Das Problem ist, dass es rekursiv sucht und da es andere .htaccess-Dateien in anderen Verzeichnissen gibt, die nicht daran interessiert sind, dass sie einfach stecken bleiben.

Also, wie kann ich den obigen Code ändern und sagen, dass es NUR Änderungen an allen Dateien wie diese vornehmen soll?

/home/siteA/public_html/.htaccess

und ignorieren andere .htacccess Dateien?

Ich habe versucht, verschiedene Suchanfragen zu verwenden, hatte aber bisher kein Glück.

Antwort

1

diese Weise können Sie sed:

sed '/<IfModule mod_suphp\.c>/,/<\/IfModule>/s/^/#/; /<Files "\.user\.ini">/,/<\/Files>/s/^/#/' file 

In Kombination mit find:

find /home/site*/public_html -name '.htaccess' -exec \ 
sed -i.bak '/<IfModule mod_suphp\.c>/,/<\/IfModule>/s/^/#/; /<Files "\.user\.ini">/,/<\/Files>/s/^/#/' {} \; 
+1

sorry, hatte nur Chance, es jetzt zu laufen und ja, es funktionierte perfekt und schnell, danke! –

Verwandte Themen