Nop, no se puede :p
Apache no tiene cómo saber que 11445255 se debe particionar en 1-14-45-2-55, qué hacer para que no se particione en 11-4-4-52-55, 1-1-44-52-5-5, o cualquier otra combinación?
Podrías hacer algo como ésto, aunque demandará saber modelar bases de datos, por ejemplo, que si el usuario ingresa a:
http://dominio.tld/anuncio/dell-xps-1530-en-buen-estado
Apache llame al archivo mostrar.php?b=dell-xps-1530-en-buen-estado, esto se puede hacer con:
Código Apache:
Ver originalRewriteEngine on
RewriteRule ^anuncio/(.+)$ mostrar.php?b=$1
luego en mostrar.php:
Código PHP:
Ver original// Recoger el titulo del anuncio.
$titulo = $_SERVER['QUERY_STRING'];
// Conectar con la BD (uso PDO por seguridad, podría ser también mysqli):
try {
$bd = new PDO('mysql:dbname=nombreBD', 'root', 'macoy123');
} catch (PDOException $e) {
echo 'Error de conexión: ' . $e->getMessage();
}
// Buscar con consulta preparada para evitar un ataque de inyección SQL
$respuesta = $bd->prepare(
'SELECT id, ciudad, comuna, categoria, subcategoria
FROM anuncios
WHERE titulo = ?
LIMIT 1'
);
// Ejecutar la consulta con el título recogido desde la uri.
$respuesta->execute(array($titulo));
// Transformar la respuesta a una matriz para trabajar con ella
$datosAnuncio = $respuesta->fetch(PDO::FETCH_ASSOC);
// Imprimir algun resultado al usuario con los datos obtenidos desde la base de datos,
// no desde la url.
?>
<!DOCTYPE html>
<html>
<head>
<title>Anuncio</title>
</head>
<body>
<h1>Anuncio
<?php echo htmlentities($datosAnuncio['id']) ?></h1>
<ul>
<?php
foreach($datosAnuncio as $dato) {
}
?>
</ul>
</body>
Es decir, quizá te ayude replantear tu aplicación, en vez de que la información de la ciudad, categoría, comuna, etc venga desde la uri, podría venir incluida dentro del título.
Luego necesitarías tener una tabla con llave UNIQUE para el título y una columna para la ciudad etc.
Es lo único que se me ocurre para que sea más amigable, y de hecho es la forma en como trabajan varios script.
Si por otro lado para tu aplicación es muy importante pasar esos datos por la uri, tendrías que separarlos por algún delimitador, por ejemplo, tal como lo estabas haciendo.
Saludos :)