Jump to content


Livia29

Member Since 19/02/2012
Offline Last Active 15/01/2013, 08:20
-----

Posts I've Made

In Topic: Rewrite Não Funciona No Servidor Mesmo Com Mod_Rewrite Ativado

31/03/2012, 18:01

LeoB, peço desculpa, mas não quero colocar o endereço do site no fórum... Sei que fica difícil sem vê-lo...

Mas se você quis dizer a maneira que fiz o query, talvez eu esteja entendendo o que está acontecendo. Acho que então eu teria que mudar a maneira como eu o fiz.

De qualquer forma, esse é o query string que uso no site todo. Peguei o exemplo aqui mesmo nesse fórum, eu acho, e fui modificando.

<?php
@$pg = $_GET['pg'];
@$titulo = $_GET['titulo'];
@$ano = $_GET['ano'];
@$tipo = $_GET['tipo'];
@$modo = $_GET['modo'];;
@$show = $_GET['show'];
@$setlist = $_GET['setlist'];
@$foto = $_GET['foto'];
@$texto = $_GET['texto'];
@$audio = $_GET['audio'];
@$video = $_GET['video'];
?>

<?php
if ($pg == "" && !$titulo && !$ano && !$tipo && !$modo) {
$pagina = "news.php";
}
elseif ($pg == "$pg" && !$titulo && !$ano && !$tipo && !$modo) {
$pagina = "$pg.php";
}
elseif ($pg == "$pg" && $titulo == "$titulo" && !$ano && !$tipo && !$modo) {
$pagina = "new/$titulo.php";
}
elseif ($pg == "$pg" && $ano == "$ano" && !$titulo && !$tipo && !$modo) {
$pagina = "sh/$ano.php";
}
elseif ($pg == "$pg" && $tipo == "$tipo" && !$titulo && !$ano && !$modo) {
$pagina = "med/$tipo.php";
}
elseif ($pg == "$pg" && $modo == "$modo" && !$titulo && !$ano && !$tipo) {
$pagina = "rep/$modo.php";
}
elseif ($pg == "$pg" && $ano == "$ano" && $show = "$show" && !$setlist && !$texto && !$foto && !$audio && !$video) {
$pagina = "$pg.php";
}
elseif ($pg == "$pg" && $ano == "$ano" && $setlist == "$setlist" && !$show && !$texto && !$foto && !$audio && !$video) {
$pagina = "$pg.php";
}
elseif ($pg == "$pg" && $ano == "$ano" && $texto == "$texto" && !$show && !$setlist && !$foto && !$audio && !$video) {
$pagina = "$pg.php";
}
elseif ($pg == "$pg" && $ano == "$ano" && $foto == "$foto" && !$show && !$setlist && !$texto && !$audio && !$video) {
$pagina = "$pg.php";
}
elseif ($pg == "$pg" && $ano == "$ano" && $audio == "$audio" && !$show && !$setlist && !$texto && !$foto && !$video) {
$pagina = "$pg.php";
}
elseif ($pg == "$pg" && $ano == "$ano" && $video == "$video" && !$show && !$setlist && !$texto && !$foto && !$audio) {
$pagina = "$pg.php";
}
?>


E o script do index é esse:

<?php
if( (isset($pagina)) and (file_exists($pagina)) ) {
include($pagina);
} else {
echo ("<script type=\"text/javascript\">
window.location.replace('http://www.site.com.br/erro.htm');
</script>");
}
?>


Com ele consigo urls como:

index.php?pg=media
index.php?pg=news&titulo=$titulo
index.php?pg=shows&ano=$ano&show=$show ou index.php?pg=shows&ano=$ano&foto=$foto,

As páginas que o $pg pega são exatamente aquelas, news.php, shows.php, etc. A razão por que ele está pegando os phps será que pode ser o fato de eu dizer nas condições que é para ele pegar $pg.php?

In Topic: Rewrite Não Funciona No Servidor Mesmo Com Mod_Rewrite Ativado

31/03/2012, 16:17

Veja se o seu próprio sistema não está fazendo algo do tipo.


Desculpe, não entendi o que quis dizer... Você quer dizer a maneira como montei a query string?

Tentei colocar a barra, não funcionou...

In Topic: Rewrite Não Funciona No Servidor Mesmo Com Mod_Rewrite Ativado

31/03/2012, 03:31

Deixa eu explicar melhor, ficou tudo cortado. rs

Não dá mais Internal Server Error desde que eles fizeram algo no servidor e liberaram meu htaccess.

Mas agora, quando tento acessar no servidor os redirecionamentos que eu quero, do tipo

http://www.site.com.br/news
http://www.site.com.br/shows
http://www.site.com.br/repert

Aparece

http://www.site.com.br/news.php
http://www.site.com.br/shows.php
http://www.site.com.br/repert.php

Que são os phps "includados" no index. Não quero que sejam vistos separados.

Sobre o RewriteCond, teria que deixar então dois RewriteConds para diretório e arquivo antes de cada regra? Aliás, esse RewriteCond !-f não deveria evitar exatamente que esses phps fossem pegos, ou entendi errado?

É... Não bastasse servidor compartilhado ser um problema, o atendimento deles é muito ruim.

In Topic: Rewrite Não Funciona No Servidor Mesmo Com Mod_Rewrite Ativado

30/03/2012, 14:37

Tudo bem, Diego. Obrigada pela ajuda.

LeoB, entendi o que você quis dizer. Mas criei o arquivo no editor deles mesmos. Como o servidor é compartilhado, eles não me deixaram mandar o arquivo por FTP. Criei, nomeei e salvei o arquivo na raiz do meu site através do editor deles.

De qualquer forma, acabei de reescrever no editor deles o código do meu htaccess, caracter por caracter, e continua não funcionando...

O que eu tinha entendido da mensagem deles é que os códigos que estou usando no htaccess têm algo de errado. Mas não sei o quê. Já tentei mudar os ([a-z]+) por algo tipo (.+) ou (.*). Continua não funcionando.

Tá difícil...

In Topic: Rewrite Não Funciona No Servidor Mesmo Com Mod_Rewrite Ativado

30/03/2012, 00:32

Entendi...

LeoB, poderia me dizer se há algo de errado nesse .htaccess?

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]+)\/?$ index.php?pg=$1 [L]
RewriteRule ^shows\/([0-9]+)\/?$ index.php?pg=shows&ano=$1 [L]
RewriteRule ^shows\/([0-9]+)\/([a-z0-9]+)\/([a-z]+)\/?$ index.php?pg=shows&ano=$1&$3=$2 [L]
RewriteRule ^news\/([a-z0-9-]+)\/?$ index.php?pg=news&titulo=$1 [L]
RewriteRule ^media\/([a-z]+)\/?$ index.php?pg=media&tipo=$1 [L]
RewriteRule ^repert\/([a-z]+)\/?$ index.php?pg=repert&modo=$1 [L]


Ele funciona localmente e no servidor não. Perguntei ao pessoal do servidor o que ele tem de errado que faz com que não funcione no servidor e eles só me responderam que há algo de errado na codificação desse arquivo.

Tentei deixar as quatro primeiras linhas mais a primeira regra, tentei tirar a primeira linha, tentei mudar as flags, nada dá certo - ele abre as páginas php, ao invés das páginas "includadas" no index.php.

Não consigo encontrar erro! Por que funcionaria localmente e no servidor não...?

IPB Skin By Virteq