mod_rewrite가 활성화되었지만 작동하지 않습니다


17

PHP 라우팅 라이브러리를 설정하려고합니다. .htaccess 파일에 대한이 예제를 제공합니다.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

이 기능을 사용할 수 없으므로 mod_rewrite를 활성화하려고 시도했지만 "모듈 다시 쓰기가 이미 활성화되었습니다"라고 표시되어 있습니다.

왜 제대로 작동하지 않습니까? 감사! Ubuntu Precise 12.04 및 apache2.2.22를 실행 중입니다. (업데이트 확인)

편집 : 몇 가지 자세한 내용은 PuPHPet vagrant 빌드이므로 다시 작성해야합니다.

답변:


33

덮어 쓰기를 허용해야합니다.

<Directory "/path/to/document/root/">
  AllowOverride All
  Allow from All
</Directory>

5
이것은 불필요하게 허용됩니다. 해당 AllowOverride구성 에만 필요합니다. Allow from All질문과 관련이 없으며 @randomdev의 환경에 적합하지 않을 수 있습니다.
Mark

1
<Directory "/path/to/document/root/">/path/to/document/root/프로젝트 루트 로 변경 하는 것을 잊었습니다 . 감사합니다!
Abhishek

16

우선, httpd 구성 을 이것으로 설정하십시오 (경로는 서로 다를 수 있습니다. 내 우분투에서는 / etc / apache2 / sites-available / default에 있습니다).

DocumentRoot /var/www

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    allow from all
</Directory>

그런 다음이 명령으로 mod_rewrite활성화 해야합니다 .

sudo a2enmod rewrite

마지막으로 아파치 서비스를 다시 시작하십시오 .

sudo service apache2 restart

이를 확인하려면 구성> apache2handler>로드 된 모듈의 phpinfo 에서 다시 확인 해야합니다. 반드시 작성해야 하며 mod_rewrite가 활성화되어 있음을 의미합니다.mod_rewrite


이것이 가상 호스트 요소에 있어야합니까?
jjxtra


1

나는 비슷한 문제가 있었지만 다른 대답은 도움이되지 않았다. 이 줄은 시작할 때 .htaccess내 문제를 해결했습니다.

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