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 None에 AllowOverride 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.