O Vhost Rewriture está criando um erro de 500
-
26-09-2019 - |
Pergunta
Abaixo, você encontrará minha entrada atual do VHost que estou usando para um site que atualmente tenho em desenvolvimento. Essa entrada do VHost funciona bem quando a tenho na minha máquina local, mas quando empurro meu código para o meu servidor de estadiamento que está executando o mesmo registro do VHost, recebo um erro de servidor interno 500.
A máquina em que estou executando esse VHost está executando o Apache 2.2.9 (Debian).
<VirtualHost 206.217.196.61:80>
SuExecUserGroup 13labs 13labs
ServerAdmin aellis@1three.com
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]
Obrigado por qualquer ajuda que você possa fornecer.
Atenciosamente,
Andrew
Solução
Após muitos julgamentos e erros, descobri que o reescriture de trabalho precisa ser o seguinte:
RewriteRule ^.*$ /index.php$1 [PT,QSA,L]
Então, no PHP, eu preciso usar $ _server ['request_uri'] em vez de $ _server ['path_info'] para garantir que meu script php consulte o URI.