Ubuntu의 Apache에서 .htaccess를 사용하는 방법은 무엇입니까?


15

우분투 14.04 (Apache 2.4.7)에서 htaccess 파일을 사용하려고합니다 . 나는이 질문에 가능한 많은 중복이 있음을 알고 있지만 아무도 나에게 도움이되지 않았다.

.htaccess

ErrorDocument 404 /404.html

000-default.conf

<VirtualHost *:80>
AccessFileName .htaccess

ServerAdmin webmaster@localhost
DocumentRoot /var/www

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/>
  Options Indexes FollowSymLinks Includes
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>
</VirtualHost>

또 무엇이 필요합니까?


1
AllowOverride All 지시문은 .htaccess 파일의 모든 옵션을 허용합니다. 000-default.conf는 서버에 사이트가 하나만 있다고 가정합니다. .htaccess 파일이 작동하지 않습니까? 이 서버에서 둘 이상의 사이트가 호스팅됩니까?
closetnoc

/ var / www에는 많은 폴더가 있지만 가상 호스트는 만들어지지 않습니다. / etc / apache2 / sites-available / 폴더에는 000-default.conf 및 default-ssl.conf라는 두 개의 파일이 있습니다. htaccess 파일은 / var / www /에 있습니다
David ZIP

아마 'DocumentRoot / var / www /'? (꼬리 슬래시)
Kovah

/ etc / apache2 / sites-enabled /에 000-default.conf에 대한 링크가 포함되어 있는지 확인하십시오. /var/www/index.html 파일을 변경하면 웹 브라우저로 서버를 볼 때 변경 사항을 볼 수 있습니다.
Stephen Ostermiller

답변:


26

첫 번째 단계

다음과 같이 파일 열기

sudo vim /etc/apache2/apache2.conf

두번째 단계

이 줄 앞에서 주석 부호 (#)를 찾으면 제거하십시오 (행 번호 약 187).

AccessFileName .htaccess

세 번째 단계

그런 다음 줄이있는 곳을 찾으십시오.

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

"없음"을 "모두"로 바꿉니다.

AllowOverride All

그리고 짜잔 ... .htaccess작동합니다!


3
서비스 아파치를 다시 시작 : 나는 아파치 명령 다시 시작할 때까지 변경 사항이 적용되지 않았다
타히르 야신

1
@TahirYasin이 언급했듯이 아파치를 다시 시작하는 것이 좋습니다. sudo service apache2 restart.
www139

7

ModRewrite를 활성화하십시오 :

sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart

1
service명령은 이제 Apache를 다시 시작하는 기본 방법 sudo service apache2 restart입니다.
Stephen Ostermiller

1

내 경우에는 변화 AllowOverride NoneAllowOverride All/etc/apache2/sites-enabled/000-default.conf가 도움을 주었다.

다른 모든 .conf 파일은 이미 가지고 AllowOverride All있습니다.


0
  1. 에서 /etc/apache2/apache2.conf 제거 주석 기호 ( #)에서AccessFileName .htaccess
  2. Apache 구성 파일의 이름이 표준이 아닙니다. Windows에서는 이름 을 default.conf 로 바꾸고 Linux에서는 기본값으로 바꿀 수 있습니다. Linux 기반 OS에서이 코드를 터미널에서 실행하십시오.

    sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/default
    

알파벳순으로 표시되도록 0으로 이름이 지정됩니다. default.conf 파일이 있고 anteater.com에 대한 사이트를 만들면 anteater가 먼저로드되므로 기본 호스트가됩니다. 이러한 문제를 방지하려면 000을 유지하십시오. conf 파일의 이름은 .htaccess의 작동 여부와 관련이 없어야합니다.
Stephen Ostermiller

1
'AccessFileName .htaccess'는 이미 주석 처리되어 있지 않습니다. 위의 답변이 도움이되었습니다. 감사.
David ZIP
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.