2010-04-13 5 views
0

아래에 현재 개발중인 사이트에 현재 사용중인 vHost 항목이 있습니다. 이 vHost 항목은 로컬 컴퓨터에있을 때 제대로 작동하지만 동일한 vHost 레코드를 실행하는 준비 서버에 코드를 푸시하면 500 개의 내부 서버 오류가 발생합니다.vHost RewriteRule이 500 오류를 생성 중입니다.

이 vHost를 실행중인 컴퓨터에서 Apache 2.2.9 (Debian)가 실행 중입니다. 당신이 제공 할 수있는 어떤 도움

<VirtualHost 206.217.196.61:80> 
    SuExecUserGroup 13labs 13labs 
    ServerAdmin [email protected] 
    ServerName admin.13labs.net 
    ServerAlias admin.13labs.net 

    DirectoryIndex index.php 
    DocumentRoot /var/www/13labs.net/html/admin/ 
    ErrorLog /var/www/13labs.net/logs/error.log 

    # Hide .svn Directories 
    <DirectoryMatch "\.svn"> 
      Order deny,allow 
      deny from all 
    </DirectoryMatch> 

    # FastCGI 
    Alias /fcgi-bin/ /var/www/13labs.net/fcgi-bin/ 

    AddHandler php-fastcgi .php 
    AddType application/x-httpd-php .php 
    Action php-fastcgi /fcgi-bin/admin-php.fcgi 

    <Directory /var/www/13labs.net/fcgi-bin/> 
      SetHandler fcgid-script 
      AllowOverride None 
      Options -Indexes +ExecCGI -FollowSymlinks -SymLinksIfOwnerMatch 
      Order allow,deny 
      Allow from all 
    </Directory> 

    <Directory /var/www/13labs.net/html/admin/> 
      AllowOverride None 
      Options -Indexes -FollowSymlinks -SymLinksIfOwnerMatch 
      FileETag All 
    </Directory> 

    # Rewrite Logic 
    RewriteEngine On 

    RewriteCond %{REQUEST_FILENAME} !\.(gif|jpe?g|png|js|css|swf|php|ico|txt|pdf)$ 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-l 
    RewriteRule ^/(.+)$ /index.php/$1 [PT,QSA,L] 

감사합니다. PHP에서 다음

RewriteRule ^.*$ /index.php$1 [PT,QSA,L] 

내가 $ _SERVER를 [이용해야합니다 : 많은 시행 착오 후

안부,
앤드류

+0

더 조사해 보니, 물리적으로 RewriteRule을 정의하면 작동하지만 규칙을 무시하는 것은 실패합니다. 예를 들어, "RewriteRule ^/user/login $ /index.php/user/login [PT, QSA, L]"하지만 작동하지 않습니다 "RewriteRule^(. *) $ /index.php$1 [PT, QSA, L] " –

답변

0

나는 작업한다 RewriteRule은 다음이 될 필요가 있음을 발견했다 'REQUEST_URI'] 대신 $ _SERVER [ 'PATH_INFO']를 사용하여 PHP 스크립트가 전달 된 URI를 확인합니다.

관련 문제