htaccess rewriterule barra principal

1

Estou usando o htaccess para reescrever meus URLs para que eu possa ter boas URLs limpas. No entanto, o mesmo arquivo htaccess faz coisas diferentes no meu servidor local e no meu servidor remoto:

No meu servidor local, a URL do site é como http://localhost/example/ e no meu servidor remoto a URL é http://example.com/ .

Para meu servidor local, posso usar a seguinte regra de redirecionamento de htaccess:

RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]

No entanto, quando eu uso isso no meu servidor remoto, recebo um erro interno do servidor. Em vez disso, eu tenho que usar isso: (note a barra inicial)

RewriteRule ^(.*)$ /index.php?page=$1 [L,QSA]

Infelizmente isso não funciona no meu servidor local: essa regra de reescrita solicita http://localhost/index.php em vez de http://localhost/example/index.php no meu servidor local.

Como posso fazer isso funcionar no meu servidor remoto e local?

    
por Tiddo 25.03.2012 / 23:25

2 respostas

2

A melhor solução seria alterar seu DocumentRoot em seu servidor de desenvolvimento para que os URIs (e, portanto, todas as reescritas) sejam iguais aos do servidor de produção.

Se você tem vários sites em seu servidor de desenvolvimento que você está mantendo em pastas separadas, você pode usar subdomínios separados para eles.

    
por 26.03.2012 / 00:34
1

Essa diretiva deve funcionar bem em qualquer contexto de diretório.

Forneça o erro de seu registro quando ele responder com 500 Internal Server Error , além de outras configurações relevantes desse sistema.

    
por 26.03.2012 / 00:53