Ir para conteúdo

Arquivado

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

carloshenrique1991

url amigavel

Recommended Posts

Boa noite!

 

Quando clico no link da index ele funciona normalmente mas desabilita meu css, script, etc..(tudo), e se eu clicar novamente no link da index ele adiciona novamente o parâmetro na url ao invés de acessar a página novamente.

 

primeiro clique

EX: localhost/meusite/conteudo/usuarios/perfil

 

se eu clicar no mesmo link duas vezes

EX: localhost/meusite/conteudo/usuarios/conteudo/usuarios/perfil

 

como posso resolver isso?

 

 

.htaccess

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

<?php
  $getUrl = strip_tags(trim(filter_input(INPUT_GET, 'pg', FILTER_DEFAULT)));
  $setUrl = (empty($getUrl) ? 'index' : $getUrl);
  $Url = explode('/', $setUrl);
?>
conteudo.php

<section>
  <?php
    // Páginas que podem ser carregadas pelo site.
    $paginas_validas = array(
 'homepage',
 'conteudo/usuarios/perfil'
);
    
// Validade o $_GET['pg'].
$pagina = isset($_GET['pg']) ? $_GET['pg'] : null;
    
// Mostra, se a página estiver dentro da várialvel $paginas_validas.
    if(in_array($pagina, $paginas_validas)){
require_once($pagina . ".php");}
 
// Mostra, se a página estiver dentro da várialvel $paginas_validas.
elseif(in_array($pagina, $paginas_validas)){
require_once($pagina . ".html");}
 
    // Se a variável $pagina estiver vazia exibe a homepage
elseif(in_array($pagina=="", $paginas_validas)){
require_once ('conteudo/homepage/homepage.php');}
    
// Se a URL não existir exibe a página de erro
else{
require_once("conteudo/404/notFound.php");}
  ?>
</section>
index.php

<link href="css/index_estilo.css" rel="stylesheet" type="text/css" />
<a href="conteudo/usuarios/perfil">Teste de perfil</a>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<link href="/css/index_estilo.css" rel="stylesheet" type="text/css" />
<a href="/conteudo/usuarios/perfil">Teste de perfil</a>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta ler o que eu te passei que você entenderá.

Pelo que entendi a tag base deixa os link com o diretório inicial, sendo assim os link sempre começando do "pastaSite/"'restante do link". Tentei e também não funcionou, e continua o mesmo problema de clicar no link varias vezes e ele sempre vai adicionando vários parâmetros na url. Já to uma semana tentando resolver isso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos ler a definição:

The <base> tag specifies the base URL/target for all relative URLs in a document.

 

Em que parte da definição está falando isto que você leu? Em nenhum lugar... sequer fala de link, primeira recomendação, estude inglês, sem isto não existe futuro na área de T.I. para ninguém.

 

Segundo, o que é URL relativa? É o que você postou lá no #3.

 

Terceiro: Como você usou isto? Colocou no cabeçalho? Colocou antes dos JS/CSS... antes de tudo? Se não colocar não vai funcionar...

 

Quarto: Fechou a URL informada com o / ?

 

Site que usa exatamente o que você eu falei:

http://www.portalgourmet.com.br/receitas/carnes-em-geral-13.html

Observe o código fonte:

<!DOCTYPE html>
<html lang="pt-BR" xmlns:fb="http://ogp.me/ns/fb#" prefix="og: http://ogp.me/ns#" class="no-js">
<head>
<meta charset="iso-8859-1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Portal Gourmet</title>
    <base href="http://www.portalgourmet.com.br/" />
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Dosis">
<link rel="stylesheet" href="assets/css/font-awesome.min.css" />
<link rel="stylesheet" href="assets/fonts/awards/awards.css" />
<link rel="stylesheet" href="assets/css/styles.css" />
    <link rel="stylesheet" href="assets/css/prettyPhoto.css" type="text/css" media="screen" title="prettyPhoto main stylesheet" charset="utf-8" />

Viu a tag base? Ela faz o milagre...

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por RodrigoWD3
      Boa tarde pessoal estou com uma dúvida, seguinte estou criando uma pagina de blog para teste de url amigável ja configurei o .htaccess  , o banco de dados , as postagem com slugs , o problema e que só consigo exibir a noticia completa quando ha uma categoria exemplo .
       
      O site exibe assim :  meusite.com.br/noticias/post-da-noticia/   
      Queria desse jeito: meusite.com.br/post-da-noticia/
       
      porem não queria exibir a categoria noticias, pois os posts vão esta na index
      vou colocar o código da index, acredito que a configuração seja nela
       
      INDEX.PHP
      <?php include "admin/conexao.php"; require_once("include/header.php"); @$url = $_GET['url']; $urlE = explode('/',$url); @$arquivo = $urlE['0']; @$post = $urlE['1']; $paginas = array('empresa','noticias','categoria','contato'); if(isset($post) && $post != ''){ include "single.php"; }elseif(isset($arquivo) && in_array($arquivo, $paginas)){ include "$arquivo.php"; }elseif(isset($arquivo) && $arquivo == ''){ include "home.php"; }else{ include "categoria.php"; } require_once("include/footer.php"); ?>  
    • Por Claudio r Martinez
      Olá amigos, estive pesquisando varios topicos aqui e em outros locais sobre urls amigavel,
      Não encontrei o que preciso e também não consegui adaptar.
      É assim:
      Tenho um site que a url original seria assim: jornadadepodologia.com.br/cursos-detalhes.asp?id_curso=82&curso_nome=ONLINE-PROCEDIMENTOS-PODOLOGICOS-EM-UNHAS-MICOTICAS
      consegui montar a url assim: jornadadepodologia.com.br/new/ONLINE-PROCEDIMENTOS-PODOLOGICOS-EM-UNHAS-MICOTICAS-idpllq82
      onde o "-idpllq82" é o parametro identificador do curso.
      Fiz assim porque eu consigo extrair o ID que é 82 através do SPLIT no ASP.
      Gostaria que a url ficasse assim: jornadadepodologia.com.br/ONLINE-PROCEDIMENTOS-PODOLOGICOS-EM-UNHAS-MICOTICAS
      mas precisava passar os parametros de "id_curso"  para a pagina cursos-detalhes.asp sem aparecer na url, deixando a url como acima.
      Alguém pode me ajudar.
      Desde já, agradeço pela ajuda.
    • Por Jack Oliveira
      Bom dia @Motta Poderia me dar uma pequena ajuda aqui
      estou com uma url amigavel
      ela funciona usando ex: meudominio.com/cidade/nome-do-post/12/
      quero que ele apenas pega o titulo no banco de dados sem precisar pegar o id
      minha url é bem básica
      no meu .HTACCESS
      Fiz assim
      DirectoryIndex index.php ErrorDocument 404 https://www.meusite.com.br/ RewriteCond %{HTTP_HOST} ^meusite\.com\.br$ [OR] RewriteCond %{HTTP_HOST} ^www\.meusite\.com\.br$ [OR] RewriteCond %{HTTP_HOST} ^meusite\.com\.br\/$ RewriteRule ^index\.html\/?(.*)$ "https\:\/\/www\.meusite\.com\.br\/$1" [R=301,L] #------------------------------------------------------------------- #------------------------------------------------------------------- # PERMISSIONANDO REESCRITA #------------------------------------------------------------------- RewriteEngine On # Turn on the rewriting engine # not rewrite css, js and images RewriteCond %{REQUEST_URI} !\.(?:css|js|jpg|gif|png)$ [NC] RewriteRule ^([0-9A-z_-]+)\/([0-9A-z_-]+)\/$ noticias.php?&nome=$1id=$2 [QSA,L,NC] #RewriteRule ^([0-9A-z_-]+)\/([0-9A-z_-]+)\/$ cidade.php?id=$1&nome$2 [QSA,L,NC] #RewriteRule ^buscar index.php [NC,L] <IfModule mod_headers.c> <FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css|css)$"> Header set Access-Control-Allow-Origin "*" </FilesMatch> </IfModule> No arquivo noticias.php
      quero que ele ficasse assim
      meusite.com.br/cidade/noticias-do-mundo-geral/
       
      Na função esta assim
      <?php //URL DEBUG CHARACTERS function encodeSEOString($string) { $string = preg_replace("`\[.*\]`U", "", $string); $string = preg_replace('`&(amp;)?#?[a-z0-9]+;`i', '-', $string); $string = htmlentities($string, ENT_COMPAT, 'utf-8'); $string = preg_replace("`&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig|quot|rsquo);`i", "\\1", $string); $string = preg_replace(array("`[^a-z0-9]`i", "`[-]+`"), "-", $string); return strtolower(trim($string, '-')); } ; ?> No html fiz assim
       
      <a href="./<?php echo encodeSEOString($dados['titulo']); ?>/<?php echo $dados["id"]; ?>/" target="_blank"> nesta forma ai em cima ele funciona mais quando inverto para pegar apenas o titulo ele volta para a url principal
      Antes tinha feito assim
      <a href="./<?php echo encodeSEOString($dados['titulo']); ?>/" target="_blank">
       
      Desde já agradeço...
    • Por RodrigoWD3
      Boa tarde pessoal nao sei se estou no tópico correto , gostaria de tira uma duvida quero fazer um sistema de noticias com url amigavel  em codeigniter ja fiz a parte de noticias para exibir e a view porem estou usando a id para exibir as noticias e o que eu gostaria de fazer era usar a url do titulo da noticia ficando uma url amigavel alguém teria algum tutorial para eu poder estudar obrigado
    • Por Paulo Oliveira Albuquerque
      Ola bom dia galera  se alguem poderia me dar uma ajuda na minha url amigavél,
      Ela funciona de boa 
      mais tenho dois problemas que esta me dando já dor de cabeça
      1º - Quando abre o link da url ex: meusite.com/produtos/23/nome-produtos  se eu por algo  a mais na frente desta url ela aceita e eu gostaria que que ele não aceitasse nada mais além do que foi feito o chamado  se ele for apenas assim ex2:  meusite.com/produtos/23/nome-produtos que nela não aceita se digitar na frente em um navegador qualquer mais coisa ex3:  meusite.com/produtos/23/nome-produtos-novo-uyuy   e nem aceitar se alguem digitar ou mesmo tentar fazer isso  meusite.com/produtos/23/  ou isso aqui  meusite.com/produtos.php?id=23
       
      2ª Minha Url amigavél quando ela e feito o shared em uma rede social quando eu clico dentro da rede social pra abrir a pagina ela esta vindo diferente do que foi postado ele aparece assim quando eu clico para abrir
       
      meusite.com/pasta/produtos/23/nome-produtos /><!-- ==================================================================================================================================== --> <link rel=?fbclid=Mgsgs-swwfw-dwedwedwewf-wefwefwhgygygygjhjnjnjnjnjn#.HDHDHDHDJ-messenger
      e as vezes assim
      meusite.com/pasta/produtos/23/nome-produtos?fbclid=Mgsgs-swwfw-dwedwedwewf-wefwefwhgygygygjhjnjnjnjnjn#.HDHDHDHDJ-messenger
       
      era pra ele aparecer assim quando clicar
      meusite.com/produtos/23/nome-produtos 
       
      No meu HTACCESS ESTA ASSIM
       
      #------------------------------------------------------------------- # PERMISSIONANDO REESCRITA #------------------------------------------------------------------- RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f #------------------------------------------------------------------- # EXTENSAO PHP #------------------------------------------------------------------- RewriteRule ^(.*)$ $1.php #------------------------------------------------------------------- # URL AMIGAVEL #------------------------------------------------------------------- RewriteRule ^produtos\/?([0-9]+)\/?(.+)\/?$ produtos.php?id=$1 RewriteRule ^sobre\/?([a-z]+)\/?(.+)\/?$ sobre.php RewriteRule ^index\/?([a-z]+)\/?(.+)\/?$ index.php RewriteRule ^contato\/?([a-z]+)\/?(.+)\/?$ contato.php RewriteRule ^buscar\/?([a-z]+)\/?(.+)\/?$ buscar.php e a minha função esta assim
       
      <?php //URL DEBUG CHARACTERS function encodeSEOString($string) { $string = preg_replace("`\[.*\]`U", "", $string); $string = preg_replace('`&(amp;)?#?[a-z0-9]+;`i', '-', $string); $string = htmlentities($string, ENT_COMPAT, 'utf-8'); $string = preg_replace("`&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig|quot|rsquo);`i", "\\1", $string); $string = preg_replace(array("`[^a-z0-9]`i", "`[-]+`"), "-", $string); return strtolower(trim($string, '-')); } ; ?> Meu link pra abrir a pagina esta assim
       
      <a href="meusite.com/pasta/produto/<?php echo $id; ?>/<?php echo encodeSEOString($prod_nome); ?>">Listar</a> Obs: como eu disse ela abre normal sem problemas o unico problema que estou tendo foi as que eu sitei ai em cima
×

Informação importante

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