Ir para conteúdo

POWERED BY:

Arquivado

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

marcelo2605

[Resolvido] Primeira tentativa com RewriteEngine

Recommended Posts

Wanderson, entendi o seu posicionamento e concordo que utilizar o id é mais seguro.

 

Ocorre que se eu altero o .htaccess para id (e não url), não acontece nada.

 

No seu código, você usou id=$1&slug=$2. Mas como eu passo isso para o script da pesquisa no bd?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O link deve ser assim

 

artigos.php (Que é a listagem)

<ul>
<?php
$sql   = "SELECT * FROM `tbl_artiogos` ORDER BY `id` DESC";
$query = mysql_query($sql) or die("MYSQL: ".mysql_error());
$rows  = mysql_num_rows($query);
if ($rows > 0) {
	while ($res = mysql_fetch_object($query)) {
?>
<li><a href="artigos/<?=$res->id?>/<?=$res->slug?>"><?=$res->titulo?></a></li>
<?php	
	}
}
?>
</ul>

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK, obrigado. Vou tentar.

 

Wanderson, uma última dúvida: quando eu uso

 

RewriteEngine On

RewriteRule ^home/?$ home.php

 

Quebram-se todos os links com imagens e arquivos css. O que acontece?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É porque, você deve colocar nas imagens, o caminho da raiz do site, entendeu? Você tem que colocar o caminho a partir da raiz do site, exemplo:

 

<link rel="stylesheet" href="/css/estilos.css" type="text/css" />
<script src="/js/jquery.js" type="text/javascript"></script>
<img src="/images/imagem.jpg" alt="" />

 

E assim vai para toda chamada de arquivos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz isso:

 

<link rel="stylesheet" type="text/css" href="/css/reset.css">

 

Mas não resolveu. Como estou em localhost, preciso colocar tb. a pasta do site?

 

Preciso incluir no htaccess o RewriteBase /nome do site/?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz isso:

 

<link rel="stylesheet" type="text/css" href="/css/reset.css">

 

Mas não resolveu. Como estou em localhost, preciso colocar tb. a pasta do site?

 

Preciso incluir no htaccess o RewriteBase /nome do site/?

Se isso não deu, coloque:

<link rel="stylesheet" type="text/css" href="localhost/seusite/css/reset.css">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu criei este Script aqui, que pega a raiz do site, independentemente de online ou local:

 

<?php
$a   = explode("/", $_SERVER['PHP_SELF']);
$ui  = array_keys($a);
$ui  = end($ui);
unset($a[$ui]);
$a   = implode("/", $a);
$dir = "http://".$_SERVER['HTTP_HOST'].$a."/";
?>

 

Você coloca este script antes de seu Doctype, e pra chamar os arquivos, é assim:

 

<link rel="stylesheet" href="<?=$dir?>css/estilos.css" type="text/css" />
<script src="<?=$dir?>js/jquery.js" type="text/javascript"></script>
<img src="<?=$dir?>images/imagem.jpg" alt="" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

Wanderson, não funcionou.

 

Consegui resolver assim:

 

<link rel="stylesheet" type="text/css" href="../css/reset.css">

 

Acredito que a necessidade do ../ seja porque o arquivo home.php, com o rewrite engine está "dentro de" home/, certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, você cria uma pasta para cada página?

 

Eu estava fazendo isso, mas segui o seu conselho e coloquei todas os arquivos na raiz e no .htaccess eu coloquei:

 

RewriteRule ^home/?$ home.php

 

Para cada um dos arquivos.

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.