Como criar URL amigáveis? Minhas URL de páginas saem assim /?p=

  • Autor Autor manxel
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
manxel

manxel

Eta
SEO
Verificación en dos pasos activada
Hola compañeros del foro,

Quisiera saber como puedo modificar las URL de mi sitio para que se vean amigables. Actualmente mis URL salen asi: www.misitio.com/?p=paginadejemplo cuando deberia verse asi: www.misitio.com/pagina-de-ejemplo

Estoy trabajando en base a twitter bootstrap y en el Index.php encontre estas lineas que modificandolas me lo corrige pero al acceder a la pagina me da error 404

Inserir CODE, HTML ou PHP:
[FONT=trebuchet ms]<nav class="navbar navbar-default">
<div class="container">
<div class=navbar-header>
<button type=button class=navbar-toggle data-toggle=collapse data-target=#bs-example-navbar-collapse-1>
<span class=sr-only>Toggle navigation</span>
<span class=icon-bar></span>
<span class=icon-bar></span>
<span class=icon-bar></span>
</button>
<a class=navbar-brand href=./>
<p style=background-color:#333;color:orange;font-size:46px>misitio.com</p>
</a>
</div>
<div class="collapse navbar-collapse" id=bs-example-navbar-collapse-1>
<ul class="nav navbar-nav">
<?php foreach($data["user_pages"] as $page): ?>
[SIZE=3][B]<li><a href="[COLOR=#ff0000]?p=[/COLOR]<?php echo $page["url_name"]; ?>"><?php echo $page["name"]; ?></a></li>[/B]
[/SIZE]<?php endforeach; ?>
</ul>
</div>
</div>
</nav>[/FONT]

He buscado tutoriales donde modificando en el .htaccess se puede lograr una redireccion pero no me funciona.

Agradezco la ayuda si alguien sabe como resolver esto :encouragement:
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Hola

como dices con el .htaccess se puede,pero tienes que hacer algunos arreglos

primero yo le agregaria un control por ejemplo post o pagina

Inserir CODE, HTML ou PHP:
RewriteEngine On
Rewriterule ^post-(.*)$  /?p=$1

despues el link deberia quedar

www.misitio.com/post-pagina-de-ejemplo

pero primero tienes que cambiar el $page["url_name"] con str_replace para formar el link, supongo que estas usando php

y en la pagina que recibes tienes que agregar

<base href="http://www.misitio.com/" />

esto para que carguen el CSS y demas includes

Saludos
 
Hola

como dices con el .htaccess se puede,pero tienes que hacer algunos arreglos

primero yo le agregaria un control por ejemplo post o pagina

Inserir CODE, HTML ou PHP:
RewriteEngine On
Rewriterule ^post-(.*)$  /?p=$1

despues el link deberia quedar

www.misitio.com/post-pagina-de-ejemplo

pero primero tienes que cambiar el $page["url_name"] con str_replace para formar el link, supongo que estas usando php

y en la pagina que recibes tienes que agregar

<base href="http://www.misitio.com/" />

esto para que carguen el CSS y demas includes

Saludos

Gracias por tu ayuda [MENTION=41713]nestornoe[/MENTION] :encouragement: lo probare y comentare si me funciono correctamente.
 
Hola en los comentarios anteriores te dijeron de usar htaccess, para lo que configurar las url, aqui te traigo una funcion en php para transformar el titulo de post o alguna en una url amigable espero te sirva 🙂

PHP:
function url_amigable($toClean) {
    $chars = array(
        '?' => 'S', '?' => 's', 'Ð' => 'Dj','?' => 'Z', '?' => 'z', 'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A',
        'Å' => 'A', 'Æ' => 'A', 'Ç' => 'C', 'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I',
        'Ï' => 'I', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U',
        'Û' => 'U', 'Ü' => 'U', 'Ý' => 'Y', 'Þ' => 'B', 'ß' => 'Ss','à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a',
        'å' => 'a', 'æ' => 'a', 'ç' => 'c', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i',
        'ï' => 'i', 'ð' => 'o', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'ù' => 'u',
        'ú' => 'u', 'û' => 'u', 'ý' => 'y', 'ý' => 'y', 'þ' => 'b', 'ÿ' => 'y', 'ƒ' => 'f', ',' => '',  '.' => '',  ':' => '',
        ';' => '',  '_' => '',  '<' => '',  '>' => '',  '\\'=> '',  'ª' => '',  'º' => '',  '!' => '',  '|' => '',  '"' => '',
        '@' => '',  '·' => '',  '#' => '',  '$' => '',  '~' => '',  '%' => '',  '€' => '',  '&' => '',  '¬' => '',  '/' => '',
        '(' => '',  ')' => '',  '=' => '',  '?' => '',  '\''=> '',  '¿' => '',  '¡' => '',  '`' => '',  '+' => '',  '´' => '',
        'ç' => '',  '^' => '',  '*' => '',  '¨' => '',  'Ç' => '',  '[' => '',  ']' => '',  '{' => '',  '}' => '',  '? '=> '-',
    );
	$toClean = str_replace('&', '-and-', $toClean);
	$toClean = str_replace('.', '', $toClean);
	$toClean = strtolower(strtr($toClean, $chars));
	$toClean = str_replace(' ', '-', $toClean);
	$toClean = str_replace('--', '-', $toClean);
	$toClean = str_replace('--', '-', $toClean);
	$toClean = preg_replace('/[^\w\d_ -]/si', '', $toClean);
	return trim($toClean);
}
 
Buenas,
Yo utilizo el siguiente segmente de codigo en los documentos .htaccess y funciona a la perfección espero que te sea util.

PHP:
<IfModule mod_rewrite.c>
    # Activar modo de reescritura
    RewriteEngine On

    # Directorio de instalacion, puede ser necesario si 
    # la aplicacion se ubica en public_html
    #RewriteBase /

    # No permite reescritura si el archivo o directorio existe
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    # Para peticiones que no son archivos ni directorios
    # Reescribe a index.php?url=URL
	RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>

Espero que te sea útil.
Estamos a la orden.
 
Voltar
Topo