In .htacces:
RewriteEngine On
# Enable these for debugging, disable when done (it's "expensive")
# RewriteLog /var/log/apache2/rewrite.log
# RewriteLogLevel 9
# if the requested URI doesn't point to an existing file or directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# .. pass it off to items.php (or index.php, or..) with the path as q,
# and whatever other GET parameters were there
RewriteRule ^(.*)$ items.php?q=$1 [QSA]
mod_rewrite должен быть явно включен, а Apache conf должен предоставить вам
«AllowOverride Options»
или
«AllowOverride All»
Теперь строка "/ items / category / item-name-id" появится в вашем скрипте как параметр GET 'q', где вы можете разделить на '/' и '-', как требуется, выполните поиск в таблице длякаждый элемент и т. д.
Я склонен передавать массив q (который он есть после разбиения) первому объекту (классу Категории), который загружает второй (класс имени), который загружает третий и т. д. Ноэто полностью зависит от того, что вы собираетесь с ними делать.