O problema não é que as regras de reescrita do Apache no arquivo .htaccess
não funcionem quando o PHP é executado como um módulo CGI vs. Apache. É só você não pode usar o arquivo .htacess
para definir valores PHP quando ele é executado como um CGI. Em vez disso, você precisa ter um arquivo php.ini separado que tenha suas configurações alteradas nele. Dentro da minha própria conta de hospedagem compartilhada, que executa o PHP como um CGI, faço uso do FastCGI e tenho o seguinte no meu arquivo .htaccess
:
<IfModule !mod_php.so>
AddHandler myphp-script .php
Action myphp-script /cgi-bin/myphp.fcgi
</IfModule>
Em seguida, no diretório /cgi-bin/
das minhas contas, coloquei o script myphp.fcgi
com chmod 755
contendo:
#!/bin/sh
# This ensures PHP doesn't try to run it's own
# process manager.
export PHP_FCGI_CHILDREN=0
# Execute PHP with my php.ini config file
exec /path/to/system/cgi-bin/php -c ~/myconf/php.ini
Ainda tenho uma seção <IfModule mod_rewrite.c>
no meu arquivo .htaccess
para lidar com a reconfiguração de alguns caminhos antigos do URI para a nova estrutura do URI para manter links antigos armazenados em cache nos mecanismos de pesquisa.