2010-04-13 6 views
0

Ci-dessous vous trouverez mon entrée vHost actuelle que j'utilise pour un site que j'ai actuellement en développement. Cette entrée vHost fonctionne correctement lorsque je l'ai sur ma machine locale, mais lorsque j'appuie mon code sur mon serveur de transfert qui exécute le même enregistrement vHost, je reçois une erreur 500 Internal Server.vHost RewriteRule crée une erreur 500

La machine sur laquelle tourne ce vHost exécute 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] 

Merci pour toute aide que vous pouvez fournir.

Meilleures salutations,
Andrew

+0

Il semblerait que si je définissais physiquement une RewriteRule, cela fonctionnerait, mais les règles de remplacement ne fonctionneraient pas. Par exemple, cela fonctionne "RewriteRule ^/utilisateur/login $ /index.php/user/login [PT, QSA, L]" mais cela ne fonctionne pas "RewriteRule^(. *) $ /index.php$1 [PT, QSA, L] " –

Répondre

0

Après de nombreux essais et erreurs j'ai trouvé que le RewriteRule de travail doit être le suivant:

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

Puis en PHP je dois être en utilisant $ _SERVER [ 'REQUEST_URI'] au lieu de $ _SERVER ['PATH_INFO'] pour m'assurer que mon script PHP voit le passé en URI.