Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

antonrangel

500 Internal Server Error -> '.htaccess'

Recommended Posts

To com problema com '.htaccess'..

A organização de pastas no site é essa:

Pasta   -> projeto           pasta principal
    Arquivo -> index.php
    Arquivo -> .htaccess

    Pasta     -> dts
            Arquivo  -> getSis.php

O arquivo getSis.php contem este código:

function getHome(){
	$url = $GET_['url'];
	$url = explode('/', $url);
	$url[0] = ($url[0] == NULL ? 'index' : $url[0]);
	
	if(file_exists('tpl/'.$url[0].'.php')){
		require_once('tpl/'.$url[0].'.php');
	}elseif(file_exists('tpl/'.$url[0].'/'.$url[1].'.php')){
		require_once('tpl/'.$url[0].'/'.$url[1].'.php');
	}else{
		require_once('tpl/404.php');
	}
}

Ja o arquivo .htaccess contem este código:

RewriteEngine On
RewriteCond %{SCRIPT_FILE} !-f
RewriteCond %{SCRIPT_FILE} !-d
RewriteRule (.*) index.php?url=$1

 

Quando existe o arquivo .htaccess a pasta principal desaparece da pagina do localhost e so é possivel acessar a pagina com link direto, mas é quando aparece o erro:

 

 

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

 

Please contact the server administrator, admin@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

 

More information about this error may be available in the server error log.

 

Não faço a minima ideia de como isso pode estar acontecendo ja que nao manjo muito de '.htaccess'.

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente trocar a variável SCRIPT_FILE por REQUEST_URI.

Fiz a troca, mas a pasta principal continua a desaparecer. (não do diretório mas do link para acessa-lo).

 

 

A solução é essa. Eu uso essa função

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1

Tenho a impressão de que digitei errado, mas tentei trocar por este código e a pasta principal continua a desaparecer..

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 - o rewrite_module está ativo em seu apache ?

 

2 - Você tem uma pasta principal com o nome PROJETO todos os arquivos estão dentro dela?

 

3 - Dentro desta index.php vc está usando a setHome(); ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 - o rewrite_module está ativo em seu apache ?

 

2 - Você tem uma pasta principal com o nome PROJETO todos os arquivos estão dentro dela?

 

3 - Dentro desta index.php vc está usando a setHome(); ?

 

1 - Não estava ativado, mas agora esta e continua o problema.

2 - Sim, todos os arquivos estao dentro da pasta PROJETO como esta no 1º post.

 

3 - Não, e desculpe a burrice, tambem nao sei como usar ou se vai funcionar..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é burrice, mas pelo seu código percebi que é parecido com o php pro da upinside.

 

Mas tudo bem, esta função que vc usa está em modo de trabalho com url amigaveis.

 

então quando vc acessa localhost/projeto ele dá esse erro?

 

vc está chamado o getsis na index.php

 

 

require ('dts/getSis.php'); 

 

Seria getHome(); a função que vc criou e não setHome(); como eu citei.

 

Tem que chamar ele na index.php

 

 

<body>

<?php getHome() ;?>
  
</body>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hehe, é da UpInside mesmo.. boa percepção :D

 

Pois é, o erro era esse mesmo, como ele nao mostrou no video para chamar a função no index eu acabei esquecendo.. bem erro de inciante, mas tudo bem...

 

Bom, pra acaba com o post, uma ultima pergunta. Agora o erro que aparece é o de arquivo inexistente mas isso é porque eu nao tenho hehe. Mas no caso para conseguir fazer o que ele fez no vídeo, onde ele digita qualquer arquivo ou pasta inexistente e nao aparece nenhum erro, como faço isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele criou um 404.php estilizou por isso não aparece erro.

 

Sempre deve se criar uma 404 como tem na função getHome. Caso não encontre o que se passa na url ela é chamada.

 

Daí vc estiliza a seu gosto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele criou um 404.php estilizou por isso não aparece erro.

 

Sempre deve se criar uma 404 como tem na função getHome. Caso não encontre o que se passa na url ela é chamada.

 

Daí vc estiliza a seu gosto.

Certo, mas o que acontece é que não é redirecionado para a tal pagina '404.php' mas fica na mesma página que foi digitada e sem aparecer o erro.. No caso, se eu fizer deste geito que voce falou, eu iria criar uma pagina para ser redirecionada e nao continuara no mesmo link digitado..

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que vc faz para aparecer arquivo inexistente?

 

O que passa pela url ?

 

Assista todas as aulas primeiro, depois vc começa a programar, senão vc vai se perder.

 

Ele fez um layout demo, só fica funcional depois que passa a programar. Aí vc verá as diferenças.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que vc faz para aparecer arquivo inexistente?

 

O que passa pela url ?

 

Assista todas as aulas primeiro, depois vc começa a programar, senão vc vai se perder.

 

Ele fez um layout demo, só fica funcional depois que passa a programar. Aí vc verá as diferenças.

O que eu quis dizer é que no vídeo ele mostra que ao acessar uma pagina ou arquivo q nao existe, nao e redirecionado para a pagina '404.php' mas fica na mesma pagina mas em branco.

Como ele faz isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola amigos estou com um problema em publicar meu site, fiz um index.php com o seguinte código:

<?php virtual('/Connections/TCT.php'); ?>

<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO usuario (usuario, email, senha, `data`, nivel, assinatura, ip) VALUES (%s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['usuario'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['senha'], "text"),
GetSQLValueString($_POST['data'], "date"),
GetSQLValueString($_POST['nivel'], "int"),
GetSQLValueString($_POST['assinatura'], "text"),
GetSQLValueString($_POST['ip'], "text"));
mysql_select_db($database_TCT, $TCT);
$Result1 = mysql_query($insertSQL, $TCT) or die(mysql_error());
}
?>
<form method="post" name="form1" action="<?php echo $editFormAction; ?>">
<table align="center">
<tr valign="baseline">
<td nowrap align="right">Usuario:</td>
<td><input type="text" name="usuario" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Email:</td>
<td><input type="text" name="email" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Senha:</td>
<td><input type="password" name="senha" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Assinatura:</td>
<td><input type="text" name="assinatura" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"> </td>
<td><input type="submit" value="Inserir registro"></td>
</tr>
</table>
<input type="hidden" name="data" value="">
<input type="hidden" name="nivel" value="">
<input type="hidden" name="ip" value="">
<input type="hidden" name="MM_insert" value="form1">
</form>
<p> </p>
inserção conjunto de registro, já estão tudo sincronizado com os bancos de dados e nada, a pagina abre em branco peço para exibir código fonte e não aparece nada, só em branco, porem quando uso somente a parte de design no dreamweaver aparece tudo que escrevo como texto, só não aparece quando insiro dados dinâmicos para trabalhar com bancos de dados, tenho um servidor virtual conhecido como wamp server que esta tudo ok.
eu mesmo configurei o httpd.conf , adicionei as extensões, inseri o directory rais da pasta www no apache, tudo ok.
mas em meu servidor oline não sei como e onde ficam estes arquivos, porque já é gerenciador cpanel
já encontrei o arquivo htaccess mas ainda não consegui uma edição para ele, quando checo os logs de erros, diz internal server error 500, o mesmo acontece quando acesa meu domínio apete f12 para abrir o console e aperte f5 para atualizar e o erro ira aparecer.
peço a ajuda de vocês para solucionar meu problema, lembrando que as configurações de servidores virtual não serve, porque não é diretórios em disco rígido e sim em um servidor de hospedagem programado para clientes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.