有没有办法通过 ssh 批量执行 .htaccess 编辑?
我有多个网站,其内容如下:
/home/user/website1/public_html/.htaccess
/home/user/website2/public_html/.htaccess
...
并且想在文件底部添加(不仅仅是替换整个 .htaccess )几个新行,例如:
<FilesMatch ".+\.php$">
Require all denied
</FilesMatch>
有没有办法做到这一点?
答案1
另一种选择是使用 shell 脚本:
#!/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 文件中。我用一个引此处文档这样 shell 就不会“帮助”解释任何内容。
如果您想用一个空行分隔先前的内容和添加的内容,只需将其插入到<Filesmatch
您要插入的部分之前(紧接该cat
行之后)。
答案2
就在这里。只需要写一些代码,ssh后在服务器上运行即可。例如,在Python中:
# 你想要添加的行 行=“”“ <FilesMatch ".+\.php$"> 要求全部拒绝 </文件匹配> ”“” # 需要追加的文件 文件=[] files.append('/home/user/website1/public_html/.htaccess') files.append('/home/user/website2/public_html/.htaccess') # 将行追加到文件中 对于文件中的文件: f=打开(文件,'ab') f.write(行) f.close()