各/public_html/.htaccessファイルに次の行を追加します。

各/public_html/.htaccessファイルに次の行を追加します。

SSHで一括.htaccess編集を実行する方法はありますか?

次のコンテンツを含む複数のウェブサイトがあります。

/home/user/website1/public_html/.htaccess
/home/user/website2/public_html/.htaccess
...

ファイルの一番下にいくつかの新しい行を追加したいです(全体の.htaccessを置き換えるのではありません)。たとえば、次のようになります。

<FilesMatch ".+\.php$">
Require all denied
</FilesMatch>

これを行う方法はありますか?

ベストアンサー1

別のオプションはシェルスクリプトを使用することです。

#!/bin/sh
for htaccess in home/user/website*/public_html/.htaccess
do
  cat >> "$htaccess" << 'EOF'
<FilesMatch ".+\.php$">
Require all denied
</FilesMatch>
EOF
done

スクリプトは、/home/user の下の「website」で始まる各ディレクトリを繰り返し、public_html/.htaccess ファイルに必要な行を追加します。私は一つを使う先頭ここのドキュメントこのように、シェルは何も解釈するのに「助けにはならない」ことはありません。

前の内容と追加された内容を空行で区切りたい場合は、<Filesmatch挿入したい部分の前(cat行の直後)に挿入してください。

おすすめ記事