AllowOverride all을 설정하는 방법


161

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

<Directory>
        AllowOverride All
</Directory>

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

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


3
<Directory>지시어는 경로 인수가 필요합니다.
FKEinternet

답변:


317

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모듈 재 작성을 활성화 해야 할 수도 있습니다 .


55
나도 사용해야했고 sudo a2enmod rewrite, 효과가있었습니다. 우분투 14.04 LTS에서. 그것이 누군가에게 도움이되기를 바랍니다.
Jonauz 2016 년

2
이상합니다 ...이 작업을 수행하면 내부 서버 오류가 발생합니다. /var/www/.htaccess에있는 .htaccess 파일에 오류가 있음을 나타 냅니까? apache2, conf를 AllowOverride None으로 다시 설정하면 오류가 해결되지만 URL 재 작성은 허용되지 않습니다.
o_O

우분투 12.04에서. 이 파일을 / etc / apache2 / sites-available / default 경로
찾았습니다.

별도의 파일에서 어떻게 이것을 무시할 수 있습니까? IncludeOptional conf-enabled/*.confapache2.conf파일 의 마지막 줄에 있음이 있음을 알 수 있습니다 . 그러나 apache2.conf대신 우선 순위가있는 것으로 보입니다 .
JohnnyQ

이것은 나를 위해 마술을합니다. 회사 데비안 서버를 wheezy에서 jessie로 업데이트 한 후 아파치의 모든 것이 작동을 멈추고 추가 한 후에 모든 것이 다시 작동하기 시작했습니다.
periket2000

51

주요 목표는 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파일을.


17

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>

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


일 끝났어! 타이 선생님!
James Walker

6
NB Order allow,deny이며 Allow from allApache 2.2 및 이전 버전 용입니다. Apache 2.4에서는이 두 줄이 Require all granted다른 답변과 같이 바뀝니다 .
FKEinternet

13

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>

8
다음에 서버를 다시 시작하십시오
Daniel

내 .htacces를 수백 번 확인한 후 이것이 해결책이었습니다! 대단히 감사합니다. 나는 "all"이 아파치 구성의 기본값이라고 생각했다.
Matthias Kleine

또한 답변에 Linux를 언급하는 것은 좋지 않습니다. 이 나이에도 불구하고, 난 그냥 당신이 말하는 것은 레드햇 기반의 배포판입니다 명확히 할
Chi.CJRajeeva Lochana

11

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 파일에서 모든 종류의 규칙을 설정할 수 있습니다 .


2015 년 now here fine the code line kinda like # 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. #Sep 11, 2013 apache - How to Set AllowOverride all - Stack Overflow stackoverflow.com/questions/18740419/how-to-set-allowoverride-all
boot13


5

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

같은 AllowOverride AuthConfig mod_rewrite대신

AllowOverride All

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


1
감사합니다!! 이것은 내가 찾던 것입니다. windwalker.com.au를 windwanderer.com.au로 리디렉션하고 싶기 때문에 .htaccess 파일 에이 지시문을 허용해야하며 그 이상은 아닙니다. AllowOverride ALL을 항상 중요하게 설정하면 서버의 보안이 저하됩니다.
바람 방랑자 Jesse 제시

1

나는 또한이 문제를 만났고 아래의 2 단계로 해결책을 찾았습니다. 1. apache2의 사이트 가능 폴더에서 "AlllowOverride all"을 설정하여 Directory 요소에서 편집합니다 ( "none"이 아니라 "all"이어야 함) 2. www 폴더의 kohana 프로젝트에서 "example.htaccess"의 이름을 ".htaccess"로 바꿉니다.

나는 우분투에서 그것을했다. 그것이 당신을 도울 수 있기를 바랍니다.


0

SuSE Linux 엔터프라이즈 서버

올바른 파일을 편집하고 있는지 확인하십시오 https://www.suse.com/documentation/sles11/book_sle_admin/data/sec_apache2_configuration.html

httpd.conf

기본 Apache 서버 구성 파일 이 파일을 변경하지 마십시오. 주로 include 문과 전역 설정을 포함합니다. 여기에 나열된 관련 구성 파일에서 전역 설정을 덮어 씁니다. 가상 호스트 구성 에서 호스트 별 설정 (예 : 문서 루트)을 변경하십시오 .

이 경우 vhosts.d/*.conf편집해야합니다


0

또한 웹 서버 구성의 일부에서 일치하지 않는 설정과 다른 설정으로SSL 인해 정답이 올바로 정답이 표시되는 경우가 있습니다 . ( .htaccess파일을 사용하지 않을 때 ).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.