Pergunta

Eu estou usando mod_rewrite para criar URLs SEO. Basicamente, a coisa funciona da seguinte maneira: Todos os pedidos são capturados por .htaccess e redirecionado para um script php (de vamos dizer transform.php). transform.php analisa SEO URL e transforma-lo em uma URL normal, em seguida, inclui index.php, em seguida, chama a saída (do index.php) do aplicativo e usa RegEx para converter todas as URLs normais para URLs SEO. Assim, o passo fundamental é fazer com que todos os pedidos de ir através transform.php. Meu .htaccess é bastante longo no entanto eu consegui limitá-lo às seguintes linhas.

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on

    RewriteRule ^index\.php?(.*)$ ./transform.php?p=$1&%{QUERY_STRING} [L]

</IfModule>

O problema acontece com a inicial (root) URL: http://mysite.com/ . Quando eu digito http://mysite.com/ site está localizado no meu comp local, tudo funciona bem. http://mysite.com/ é capturado por .htaccess e enviado para transform.php para processamento adicional. No entanto, em outro servidor esta linha não funciona (digamos que para http://mysite-other-server.com / ). Esta linha .htaccess simplesmente não pegar o pedido. Tudo funciona bem para http://mysite-other-server.com/index.php entretanto.

Além disso eu tenho vários sites sobre esse segundo servidor e alguns deles trabalham enquanto alguns deles não. É como para alguns deles o URL é primeiro resolveu http: // mysite-outro-servidor. com / index.php e depois manipulado por .htaccess enquanto para outros a URL não for resolvido e .htaccess lida com http://mysite-other-server.com/

Estou muito confuso e tentou googling sem qualquer sorte. Qualquer ajuda é muito apreciada.

Foi útil?

Solução

Eu assumo que Apache está configurado para não aceitar arquivos Htacces.

Você deve habilitar-lo da configuração httpd com a configuração AllowOverride.

http://httpd.apache.org/docs/2.0 /mod/core.html#allowoverride

Outra possibilidade é que o servidor de produção não foi carregado mod_rewrite, verifique as diretrizes LoadModule para isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top