[apache] AllowOverride all을 설정하는 방법

설정하고 싶지만 AllowOverride all어떻게해야할지 모르겠습니다. Google을 검색하여 다음 코드를 찾아 붙여 넣었습니다 .htaccess.

<Directory>
        AllowOverride All
</Directory>

그러나 붙여 넣은 후에 나는 받기 시작했습니다. "Internal Server Error"

누구 든지이 코드를 어디에 넣을 지 또는 어떻게 수행 할 수 있습니까?



답변

Ubuntu를 사용하는 경우 파일을 편집하십시오 /etc/apache2/apache2.conf(여기서 예제가 있음 /var/www).

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

로 변경하십시오.

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

그때,

sudo service apache2 restart

sudo a2enmod rewrite모듈 재 작성을 활성화 해야 할 수도 있습니다 .


답변

주요 목표는 AllowOverride아파치의 주요 구성 파일 (주로 / etc / apache2 /에있는 파일)의 관리자가 응용 프로그램에 의해 경로별로 동적으로 변경 될 수있는 구성 부분을 결정하는 것입니다.

서버의 관리자가 아닌 경우 이러한 관리자가 허용 하는 AllowOverride 수준 에 의존 합니다. 중요한 보안 설정을 변경하지 못하게 할 수 있습니다.

마스터 아파치 구성 관리자 인 경우 AllowOverride None.htaccess 파일을 기반으로 찾은 모든 google_based 예제를 항상 사용 하고 Directory기본 구성 파일의 섹션으로 전송 해야 합니다. .htaccess파일에 대한 .htaccess 내용은 HTTP 요청마다 동적 구성 변경이 웹 서버 속도를 늦춘다는 점을 제외하고 /my/path/to/a/directory<Directory /my/path/to/a/directory>명령과 동일 .htaccess합니다. 항상 .htaccess확인 하지 않고 정적 구성을 선호하십시오 ( .htaccess변경으로 인한 보안 공격도 피할 수 있습니다 ).

귀하의 예에서 사용하는 방법 <Directory>은 항상 잘못되며 디렉토리 지침에는 항상 <Directory />또는 <Directory C:>또는 같은 경로가 포함 <Directory /my/path/to/a/directory>됩니다. 물론 이것은로 전환 할 수없는 경우도 있습니다 .htaccessA는 같은 .htaccess디렉토리 명령처럼하지만,이 디렉토리에있는 파일 존재입니다. 물론 당신은 변경할 수 없습니다 AllowOverrideA의 .htaccess이 명령은 관리 될 때 보안 수준.htaccess파일을.


답변

Goto 메모장 your_severpath/apache_ver/conf/
에서 파일 httpd.conf을 엽니 다.

이 줄을 찾으십시오.

#LoadModule vhost_alias_module modules / mod_vhost_alias.so

해시 기호를 제거하십시오.

LoadModule vhost_alias_module 모듈 /mod_vhost_alias.so

그런 다음 이동 <Directory />

다음으로 변경하십시오.

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

그런 다음 로컬 서버를 다시 시작하십시오.


답변

Linux에서 문서 루트에 대한 액세스를 완화하려면 다음 파일을 편집해야합니다.

/etc/httpd/conf/httpd.conf

액세스를 완화하려는 디렉토리 레벨에 따라 지시문을 변경해야합니다.

AllowOverride None

AllowOverride All

따라서 / var / www / html 디렉토리의 파일에 대한 액세스를 허용하려는 경우 다음 행을 다음에서 변경해야합니다.

<Directory "/var/www/html">
 AllowOverride None
</Directory>

<Directory "/var/www/html">
 AllowOverride All
</Directory>


답변

Linux를 사용하는 경우 디렉토리에서 코드를 편집 할 수 있습니다.

/etc/httpd/conf/httpd.conf

자, 여기 코드 라인을 찾으십시오.

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride None
#
# Controls who can get stuff from this server.
#
    Order allow,deny
    Allow from all

</Directory>

AllowOveride NoneAllowOveride All로 변경

이제 다른 운영 체제가 httpd.conf 파일을 찾아 편집 하려고하면 디렉토리 내의 .httacess 파일에서 모든 종류의 규칙을 설정할 수 있습니다 .


답변

httpd.conf파일 대신 파일 에 설정하고 싶다고 생각 .htaccess합니다.

어떤 OS를 사용하는지 잘 모르겠지만 Ubuntu에 대한이 링크는 수행 할 작업에 대한 몇 가지 지침을 제공 할 수 있습니다.

https://help.ubuntu.com/community/EnablingUseOfApacheHtaccessFiles


답변

다른 사용자가 여기에서 .htaccess 사용 권한을 부여하는 데 사용되는 allowoveride 지시문의 사용법에 대해 설명했습니다. 다른 사용자가 .htaccess에 액세스 할 수있는 경우 allowoverride를 사용하지 말고 특정 모듈을 허용하려면 allowoveride를 사용하십시오.

같은 AllowOverride AuthConfig mod_rewrite대신

AllowOverride All

mod_mime과 같은 모듈은 서버 측 파일을 일반 텍스트로 렌더링 할 수 있기 때문입니다.