Configurações htaccess para rodar o PHP?

Eu desenvolvi um portal em php, quando rodo local e em um servidor windows funciona perfeitamente porem quando vou subir para um servidor web linux, dá uns problemas de redirecionamento de paginas não roda alguém sabe me informar o que deve estar acontecendo, se eu tenho que configurar o htaccess para que o servidor possa fazer a mesma coisa que o servidor windows?

Alguem já passou por isso?

Como está configurado sua aplicação no Windows?
Você usa algum framework?

Não uso Framework só uso Netbeans + Xampp 5.6.30 no Windows.

Se código dá erros e quais são?
O que acontece exatamente, colocando figuras e apontando os problemas?

$id = $_POST["descricao"];    
$descricao = $_POST["descricao"];
$sql = "INSERT INTO Teste(id,descricao)  VALUES ('$veiculofab','$descricao')";
if(!mysqli_query($conn, $sql))
{ 
	echo ("Erro". mysqli_errno($conn));    
}
else
{ 
	//aqui que ocorre o erro no sistema linux não direciona e a tela fica branca
	header("Location: pagina.php"); 
}	
mysqli_close($conn);

No banco insere normal porem no direcionamento da pagina para.

Talvez falta o contexto real do Script PHP que você não passou faltava aspas no seu código que não foi apresentado como erro na tela!

Isso vai funcionar ou não no Windows, Linux ou MAC o problema está na programação e não no servidor!

Estranho é que no windows funciona perfeitamente no server, agora no linux que é o servidor web fica acontecendo esses problemas, pesquisando pessoas falaram que dá para usar htaccess para resolver configurações do script.

Cuidado isso não é verdade. O que eu consigo com .htaccess é configurações, se o Script tem problemas não é ele que resolver e sim o desenvolvedor!

Mostre um caso real tem como?

Não esqueça de verificar se a diretiva display_errors no php.ini está ligada no linux, assim fica mais fácil encontrar o erro, caso esteja em ambiente de produção desligue-a após identificar…

http://php.net/manual/en/errorfunc.configuration.php#ini.display-errors

Outra dica é procurar nos logs do apache…

https://httpd.apache.org/docs/1.3/logs.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
  <?php echo $mensagem; ?>
    <form class="" action="grava.php" method="post" enctype="multipart/form-data">
      <input type="text" name="id">
      <input type="text" name="descricao">
      <input type="submit" name="Submit">Enviar
    </form>
  </body>
</html>

arquivo = grava.php

<?php
 
    $id = $_POST["id"];
    $descricao = $_POST["descricao"];
   
    
$sql = "INSERT INTO controladorpedidofab2(id,descricao)VALUES ('$id','$descricao')";

if(!mysqli_query($conn, $sql)){ 
    
    echo ("Erro". mysqli_errno($conn));    
     
}else{ 
    
 header("header("Location: index.php");
 
    } 
      
mysqli_close($conn);

?>

um dos problemas também é quando vou sair clicando no logof para destruir a session não direciona para a index.php na web, no teste feito em windows funcionou

<?php
	if(!isset($_SESSION)){session_start();}
	   
    unset($_SESSION['usuarioNome']);

    session_destroy();
        
	header("Location: index.php");
?>

aqui neste trecho a session é destruida porem não direciona para a index.php fica uma pagina em branco, eu não sei o que tá acontecendo,

Sem ver a mensagem de erro é tiro no escuro, sugiro pesquisar sobre os logs e php.ini que indiquei mais acima… a partir daí teremos um norte para solucionar…

Agora adianto, esse if é desnecessário, no arquivo de logoff basta…

<?php
session_start();
session_destroy();
header("Location: index.php");

Até porque esse seu if pode gerar conflito, porque tanto para destruir quanto usar a sessão pelo $_SESSION obrigatoriamente você precisa “startá-la” independentemente se a chave está setada ou não pegou?

Também desnecessário dar unset em qualquer chave da sessão, já que o destroy a limpa por completo…

é mais ou menos assim e tem que funcionar:

<?php 
    $id = $_POST["id"];
    $descricao = $_POST["descricao"];   
    
	$sql = "INSERT INTO controladorpedidofab2(id,descricao) VALUES ('$id','$descricao')";

	if(!mysqli_query($conn, $sql))
	{     
		echo ("Erro". mysqli_errno($conn));         
	}
	else
	{    
		mysqli_close($conn);
		header("Location: index.php"); 
		exit();
	}       
	mysqli_close($conn);
?>

agora se não funcionar tem que olhar todo o trafego do seu código, para que está indo, você adicionou um componente SESSION que é como o amigo disse ele é o primeiro comando das páginas, então, tem erros de programação e não de servidor e com certeza essa afirmação pela que a gente pode observar!

Bom dia

depois de analisar o que estava acontecendo finalmente consegui resolver o problema, primeiro configurei o php.ini para ficar o mais próximo possível do das configurações do windows, e depois no codigo fonte onde estava gerando o erro coloquei <?php ob_start(); ?> e funcionou normalmente.

agradeço as pessoas que me ajudaram valeu…