2010-03-05 12 views
5

Hola chicos, estoy tratando de averiguar cuál es el más apropiado. De los artículos que he leído, parece que es mejor terminar la url con un rayo final.¿Acaso mis URL con barra al final (/) o no? Y cómo lo hago al hacer esto con codeigniter

Así que en lugar de: http://www.site.com/article

Se leería: http://www.site.com/article/

Primero ajustar mi .htaccess para forzar una barra final.

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI}  ^.+[^/]$ 
RewriteRule ^(.+)$    $1/ 

Entonces empecé a implementar esto en mis enlaces y pensé que si lo hice de anclaje ('articulo /', 'articulo') que iba a funcionar, pero parece que esta función despoja a la barra final.

Para evitar esto he cambiado el archivo de configuración para tener $ config ['url_suffix'] = '/'. Lo cual funcionó ... MUY bien ... excepto que tengo un área de documentos en mi sitio con pdf y tal. Entonces, los enlaces creados allí serían como http://www.site.com/documents/doc1.pdf/. Esto por supuesto no funciona.

¿Cuál crees que es mi solución aquí? Creo que podría volver a cualquier página en la que haga referencia a documentos o archivos y ajustarlos para que no utilicen la función de anclaje, pero creo que debería haber una manera más fácil.

Gracias!

+1

Sólo K.I.S.S. : P – Jakub

+0

¿Sigues buscando una mejor respuesta? Si es así, déjame saber lo que falta y lo agregaré al mío. – Seaux

Respuesta

1

Mis sitios usan ambos. La barra inclinada indica algo específico para los usuarios, creo. Dado que el "/" generalmente indica una carpeta, los usuarios (especialmente técnicos) toman esto para indicar que hay subcarpetas o subparámetros en esta página. No mostrarle a un usuario esa barra inclinada podría indicar que no hay subcarpetas. Esto funciona para cosas como archivos, como su archivo pdf.

Debido a esto, he elegido no forzar ninguno de los lados, sino construir mi sitio de manera que refleje las percepciones de los usuarios. Pero eso es algo de filosofía, construyes un sitio para usuarios, no para el código, ¿verdad? :-)

0

Disculpa por ser grosero, pero si no funciona (o causa problemas), simplemente no lo hagas y estarás bien. Agregar código adicional para ese tipo de cosas es tiempo perdido. Algunos navegadores agregan la barra automáticamente, ¿por qué preocuparse? Realmente no importa.

+0

estoy de acuerdo, es un código adicional que causa que su sistema sea menos confiable al forzar más especificaciones ... ¿para qué? ¿consistencia? Pero solo para su sitio, que las personas pueden confundir con otros sitios, que lo hacen de manera diferente. – Seaux

+2

Bueno, he leído que los motores de búsqueda ven "página /" y "página" de manera diferente. Así que quiero que todos mis enlaces sean una forma de optimizar mi sitio. – Roeland

+0

@Roeland Creo que los ven diferentes ya que he indicado cómo los ven los usuarios en mi respuesta. Puede consultar con Google, dejan muy claro que si desea optimizar, entonces necesita construir su sitio de la mejor manera para el usuario. – Seaux

0

Anulación site_url() de Config.php para añadir una barra al final, excepto cuando se enlaza a un archivo:

application/core/MY_Config.php:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class MY_Config extends CI_Config { 

    function site_url($uri = '') 
    { 
     if ($uri == '') 
     { 
      return $this->slash_item('base_url').$this->item('index_page'); 
     } 

     if ($this->item('enable_query_strings') == FALSE) 
     { 
      $suffix = ''; 
      if(! preg_match('/(.+)\.[a-zA-Z0-9]{2,4}$/', $uri)) 
      { 
       $suffix = '/';    
      } 
      return $this->slash_item('base_url').$this->slash_item('index_page').$this->_uri_string($uri).$suffix;    
     } 
     else 
     { 
      return $this->slash_item('base_url').$this->item('index_page').'?'.$this->_uri_string($uri); 
     } 
    } 

} 
// END MY_Config Class 

/* End of file MY_Config.php */ 
/* Location: ./application/core/MY_Config.php */ 
Cuestiones relacionadas