
"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를 넣어야 했는지는 잘 모르겠습니다. 이것이 올바른 방법인가요? 아니면 컴퓨터가 어떻게든 폭발할까요?
답변1
tl;dr
예, 올바른 방법입니다.
하지만 더 많아지려면의미론적.htaccess
: 예, 디렉터리 의 모든 지시문을 재정의 할 수 있는 올바른 방법입니다 /var/www
.
당신이 알아낸 대로,AllowOverride
섹션에서만 허용됩니다 Directory
.
귀하의 예를 사용하여 :
<Directory "/var/www">
AllowOverride All
</Directory>
/var/www
이는 모든 구성이 해당 하위 디렉터리와 모든 하위 디렉터리 에서 (재귀적으로) 재정의될 수 있음을 Apache에게 알리는 것입니다 .
더 나은 예를 들어 가상 호스트에 다음 구성이 있다고 가정하십시오.
<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
참고: Apache 2.4(13.10 이상에서 기본적으로 사용 가능)부터 Allow
, Deny
및 Order
지시문은 이라는 단일 지시문으로 대체되었습니다 Require
.
답변2
먼저 다음 명령을 사용하여 다시 쓰기를 활성화합니다.
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에서 작동했습니다.
답변3
제 경우에는 다음과 같이 작동했습니다.
다음 줄을 추가해야 했습니다.
Order allow, deny
Allow from all
따라서 다음과 같습니다.
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
답변4
이 튜토리얼에서 제가 겪은 일반적인 문제는 default.conf 파일이 없다는 것입니다.
/etc/apache2/sites-available
바꾸는 곳을 찾을 수 있었는데 여기 apache2.conf 파일이더군요.
/etc/apache2/apache2.conf
이것이 좋은 생각인지는 확실하지 않지만 나에게는 효과가 있었고 현재 환경에서는 안전합니다.