Apache .htaccess <if 모듈이 허용되지 않습니다. here 내 .htacess는 다음과 같습니다 DirectoryIndex app.php <IfModule mod_rewrite.c>

PHP 5.5를 사용하여 Ubuntu Precise에서 Apache 실행

내 액세스를 시도 var/www/하면 500이 나옵니다.

/var/log/apache2/error.log

보여줍니다 :

/var/www/web/.htaccess: <IfModule not allowed here

내 .htacess는 다음과 같습니다

DirectoryIndex app.php


<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]

    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule .? - [L]

    RewriteRule .? %{ENV:BASE}/app.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 302 ^/$ /app.php/
    </IfModule>
</IfModule>

내 apache.conf에 다음을 추가했습니다.

<Directory />
AllowOverride ALL
</Directory>

그리고 아파치를 다시 시작한 후에 작동했습니다.



답변

.htaccess 파일에서 구성 할 수 있도록 아파치를 구성해야합니다. 따라서 디렉토리 섹션에서 옵션이 있는지 확인하십시오

Allowoverride ALL

allowoverride에 대한 자세한 내용은 .

설치에서 mod_rewrite 만 사용하면 FileInfo 만 설정할 수 있습니다. 다른 사이트로 리디렉션을 수행 할 수 있도록 항상 Options 매개 변수를 SymLinksIfOwnerMatch로 설정합니다 .

Allowoverride FileInfo
Options SymLinksIfOwnerMatch

이 구성을 이미 설정 한 경우 가상 호스트 구성에 정보를 추가하십시오.


답변