가상 호스트에 대해 mod_rewrite를 활성화하는 방법


8

가상 호스트에서 mod_rewrite 규칙이 작동하지 않습니다. 나는 cakephp를 위해 이것을 원했다.

가상 호스트 파일에 추가 할 설정이 있습니까?

답변:


21

최신 아파치 버전 2.4 이상을 사용하는 경우 mod_rewrite를 활성화하는 방법은 다음과 같습니다. 자주 사용하는 텍스트 편집기를 사용하여 열기로

이동 하십시오. 변화etc/apache2/
apache2.conf

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

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

그런 다음 저장하십시오. 이 파일을 편집하고 저장하려면 루트 권한이 있어야합니다.
이제 아파치를 다시 시작하십시오.

service apache2 reload

이 프로세스는 가상 호스트를 포함한 아파치 서버에 대해 mod_rewrite를 활성화합니다.

활성화되어 있는지 여부를 확인할 수도 있습니다. PHP 스크립트 만들기

<?php    
phpinfo();    
?>

서버에서로드하십시오. Loaded Modules섹션 아래에 있는지 확인하십시오 mod_rewrite. 있으면 활성화됩니다.


이 옵션을 사용하기 전에 모든 다시 쓰기가 404로 apache2.conf끝나지만 apache404를 업데이트 하고 다시 시작한 후에는 사라졌지 만 모든 페이지가 홈페이지로 돌아갔습니다! 모듈을 활성화 phpinfo()하지 않았습니다 mod_rewrite. 그런 다음 CLI commnd를 실행하면 (아래 Lonston에서 제안한대로) 모든 것이 금방 사라졌습니다! 이 솔루션으로 mod-rewrite모듈 이 활성화되지 않고 CLI approad가 필요한 이유는 무엇입니까? .conf모듈을 활성화하기 위해 CLI 명령 을 차례로 수정 하고 실행 하는 조합입니까? 아니면 이것으로 충분합니까?
Niladri Sarkar

6

다시 쓰기 사용

# sudo a2enmod rewrite

그런 다음을 사용하여 apcahe2를 다시 시작하십시오.

# service apache2 restart

추가하여 Virtualhost에서 활성화

AllowOverride FileInfo

그런 다음을 사용하여 apcahe2를 다시 시작하십시오.

# service apache2 restart

:

<Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            # I Have below line from none to FileInfo
            AllowOverride FileInfo
            Order allow,deny
            allow from all
    </Directory>

이것은 나에게도 효과가 있었다!
Niladri Sarkar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.