각 /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줄 바로 뒤)에 삽입하시면 됩니다.

답변2

바로 여기에. 코드를 작성하고 ssh 이후 서버에서 실행하면 됩니다. 예를 들어 Python에서는 다음과 같습니다.

# 추가하고 싶은 줄
행="""
<FilesMatch ".+\.php$">
모든 요청 거부
</파일 매칭>
"""

# 추가해야 할 파일
파일=[]
files.append('/home/user/website1/public_html/.htaccess')
files.append('/home/user/website2/public_html/.htaccess')

# 파일에 줄 추가
파일 내의 파일인 경우:
    f=열기(파일,'ab')
    f.쓰기(줄)
    f.닫기()

관련 정보