“htaccess를 활성화하는 방법”의 거의 모든 솔루션에서 / etc / apache2 / sites-available / default 파일을 편집해야한다고 말합니다. 그러나 Apache 2.4.7에는 그러한 파일이 없습니다.
새 기본 파일이 000-default.conf라는 곳을 읽었습니다. 그래서 그 것을 편집하고 줄을 추가하려고했습니다.
AllowOverride All
그러나 Apache2가 올바르게 다시 시작되지 않아 오류가 발생했습니다. apache2 문서에서 AllowOverride가 <Directory>
섹션 에서만 허용된다는 것을 알았습니다 . 그런 다음 이것을 추가하려고했습니다.
<Directory "/var/www">
AllowOverride All
</Directory>
그리고 이것은 효과가있는 것 같습니다. 그러나 / var / www를 거기에 넣었는지 확실하지 않습니다. 올바른 방법입니까, 아니면 어떻게 든 컴퓨터가 고장 날까요?
답변
tl; dr
네 맞습니다.
그러나 더 의미 론적으로 : 예, 디렉토리의 .htaccess
모든 지시문을 무시할 수있는 올바른 방법 /var/www
입니다.
알다시피 섹션 AllowOverride
아래에서만 허용됩니다 Directory
.
귀하의 예를 사용하여 :
<Directory "/var/www">
AllowOverride All
</Directory>
이것은 아파치에게 모든 구성이 모든 /var/www
하위 디렉토리에서 재귀 적 으로 재정의 될 수 있음을 말해줍니다 .
더 나은 예를 위해 가상 호스트에 다음 구성이 있다고 가정하십시오.
<Directory "/var/www">
AllowOverride All
</Directory>
<Directory "/var/www/uploads">
AllowOverride Limit
</Directory>
그리고 다음 디렉토리 구조 :
var/
www/
.htaccess
uploads/
.htaccess
a/
.htaccess
b/
.htaccess
code/
.htaccess
c/
.htaccess
d/
.htaccess
내가 한 것은 .htaccess
디렉토리의 모든 하위 디렉토리에 디렉토리를 만드는 것 입니다 /var/www
.
일반적으로 그렇게해서는 안되지만 이것은 예제를위한 것입니다.
디렉토리 구조와 구성을 비교하면 디렉토리 및 해당 서브 디렉토리를 제외한 폴더 및 서브 디렉토리 .htaccess
의 모든 파일이 모든 유형의 지시문을 대체 할 수 있습니다./var/www
/var/www/uploads
그러나 /var/www/uploads
해당 서브 디렉토리는 .htaccess
파일을 사용 하여 Allow
, Deny
및 Order
지시문 을 대체 할 수 있습니다 .
참고 :이 (13.10+에서 기본적으로 사용할 수있는) 아파치 2.4의로서 Allow
, Deny
및 Order
지시의 이름은 하나의 지침으로 대체되었다 Require
.
답변
먼저이 명령을 사용하여 다시 쓰기를 활성화하십시오.
sudo a2enmod rewrite
그런 다음 apache2를 다시 시작하십시오.
sudo service apache2 restart
그런 다음 sites-available
폴더 로 이동하십시오 .
/etc/apache2/sites-available
이름이 지정된 파일을 편집 default
하고로 변경 AllowOverride none
하십시오 AllowOverride All
. 이 변경이 필요한 두 줄이 있습니다.
이것은 .htaccess
서버 VPS에서 작동합니다.
이것은 Ubuntu 12.04.5 VPS에서 작동했습니다.
답변
필자의 경우
다음과 같이 작동했습니다 . 다음 줄을 추가해야했습니다.
Order allow, deny
Allow from all
따라서 다음과 같습니다.
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
답변
다음은 기본 구성을 변경하지 않고 Apache 2.4에서 htaccess를 활성화하는 방법입니다.
cat <<EOF> /etc/apache2/conf-available/allow-override.conf
<Directory "/var/www">
AllowOverride all
</Directory>
EOF
a2enconf allow-override
service apache2 reload