significado poligamia monogamo monogamia monogama ejemplos definicion antonimo animales php url mod-rewrite

php - poligamia - monogamia yahoo



Cómo reescribir dinámicamente una URL como Facebook (4)

Si no desea la ID en la URL, los nombres de los artistas deben ser la nueva ID y, por lo tanto, únicos.

En ese caso, puede hacer lo siguiente en el archivo .htaccess en el directorio raíz de su documento para reescribir /<artistname> internamente en /profiles.php?name=<artistname> :

RewriteEngine on RewriteRule ^([a-z]+)$ profiles.php?name=$1

Aquí el nombre del artista también está restringido a solo constar de letras alfabéticas. Para otros caracteres (especialmente . Y / ), debe tener en cuenta no permitir valores que entren en conflicto con archivos existentes (por ejemplo, profiles.php ). Y si deriva los nombres de los artistas de URL de sus nombres reales, asegúrese de no permitir conflictos tampoco. En ese caso, aún necesitará la identificación artificial para que la ruta de la URL sea única.

Escribí mi sitio usando PHP y, desafortunadamente, los perfiles de los artistas son actualmente así:

website.com/profiles.php?id=xxx

De esa manera puedo OBTENER la identificación y consultar la base de datos.

Sin embargo, los artistas ahora piden website.com/artistname como su URL. Me gusta Facebook y MySpace, supongo.

Todavía necesito poder OBTENER la identificación de los artistas, para poder consultar la base de datos.

¡Supongo que tendré que usar el mod_rewrite y también desencadenar una función php en alguna parte, pero no estoy muy seguro de cómo hacerlo!

Pasé el último día buscando en línea para encontrar algo así, ¡pero parece que no puedo encontrar exactamente lo que quiero!

Si alguien tiene alguna idea sobre cómo podría hacer esto, o ejemplos para ayudarme, ¡sería genial!

Gracias


En primer lugar, debe modificar su tabla de artistas, agregar una nueva columna para definir un alias para artistas, como ''david-matthews-band'', crear un índice único para evitar confusiones con artistas homónimos.

Necesitas editar tu profile.php para encontrar artistas por alias, como website.com/profile.php?q=david-matthews-band

Cree una regla de reescritura para transformar website.com/profile/david-mattews-band a website.com/profile.php?q=david-matthews-band:

RewriteEngine On RewriteRule ^profile/* profile.php?q=$1


Puede usar la respuesta de Gumbo, pero también tiene un atajo posible:

También puede redirigir la URL / artistname a /profiles.php?id=xxx utilizando un controlador 404

Así es como lo harías:

  1. crea un archivo llamado /router.php
  2. Edite su archivo .htaccess y agregue esta línea en él: ErrorDocument 404 /router.php
  3. Haga que enrutador.php busque la ID del artista y redirija a /profiles.php?id=xxx - si no se encuentra nada, enrutador.php puede redirigir a otra página 404 o hacer un encabezado 404 + mensaje

Lo bueno de este método es que no es necesario tener habilitado mod_rewrite. (si eso es un problema)


Puede usar una URL "slug", por la cual un registro tiene un nombre único, es decir:

id name slug 001 Stack Overflow stack-overflow

entonces podrías realizar una consulta como:

SELECT `fields` FROM `table` WHERE `slug`=''$slug''

donde slug es el valor de la URL.

Hay alternativas, estoy seguro, serán provistas.