Pergunta

Depois de carregar o meu projeto Kohana para o meu servidor GoDaddy, notei meu arquivo .htaccess padrão não estava funcionando suficientemente para fornecer as URLs limpas. Depois de alguma orientação, acabei com a seguinte regra:

RewriteRule .* index.php?kohana_uri=$0 [PT,L]

Este tenho meus Nice-URLs trabalhar novamente, mas hoje eu descobrir que ele pode ser quebrando meu motor de busca interno, que também usa variáveis ??GET de estilo:

/search?terms=php

Os valores não estão sendo encontrados pelos scripts. Eles estão no meu desenvolvimento em servidor que não tem o RewriteRule modificado, mas não no servidor GoDaddy que usa o RewriteRule.

Am I certo em assumir essa regra está quebrando qualquer scripts de capacidade de ler a partir de $ _GET, e se assim como posso resolver isso?

Foi útil?

Solução

Talvez usando QSA em seus RewriteRules, como este:

RewriteRule .* index.php?kohana_uri=$0 [PT,QSA,L]

Veja a manual dos mod_rewrite (citando):

'qsappend | QSA' (string query de acréscimo)

Este sinalizador força o mecanismo de reescrita para anexar uma parte string de consulta da corda substituição ao cadeia existente, em vez de substituir isto. Utilize esta função quando quiser adicionar mais dados para a string de consulta via uma reescrita regra.

poderia ajudar (não testado no seu caso particular, mas eu me lembro ter usado este algum tempo atrás, por algum tipo de problema como este)

Outras dicas

Eu acho que você poderia acrescentar: RewriteCond $1 !^(search), ou uma variação de tal

.

Se você quiser usar uma prática padrão e sem consulta string que você precisa apenas seguir estes passos e ele vai funcionar apenas como localhost E você não precisa de alterar as regras de reescrita.

Vá para seu gerenciador de arquivos conta GoDaddy -> diretório WebRoot -> Criar php5.ini se ele não existe e lugar seguinte linha: cgi.fix_pathinfo = 1

Agora você precisa reiniciar o processo Web:

1.) Faça login na sua Account Manager. 2.) Clique Web Hosting. 3.) Ao lado da conta de hospedagem que deseja usar, clique em Iniciar. 4.) Na seção Estatísticas & Monitores, clique em processos do sistema. 5.) Na lista à esquerda, clique no processo que deseja visualizar ou clique em todos os processos para ver todos os processos de uma só vez. 6.) Para terminar um processo, clique no botão final correspondente na barra de ferramentas.

Agora você pode usar URI_PROTOCOL como Auto.

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