Если вы используете только имя персонажа, то что-то вроде следующего будет делать
RewriteRule ^ символ /(.*)$ /character.php?slug=$1
с URL-адресом, например, http://www.example.com/character/Jim_Carrey. Затем вам нужно будет найти имя персонажа в базе данных, используя переданный слаг, поскольку у вас не будет идентификатора для его поиска.
В качестве альтернативы вы можете включить идентификатор в URL, если вам это нужно, например:
RewriteRule ^ символ / ([0-9] +) /.*$ /character.php?id=$1
Таким образом, вы можете иметь URL-адрес, такой как http://www.example.com/character/3/Jim_Carrey, который будет включать имя персонажа (по причинам SEO и т. Д.), А также идентификатор, который вы затем сможете найти непосредственно в своей базе данных.
Редактировать небольшой пример PHP для вас, первый:
<?php
// ... database connection stuff here etc
$slug = $_GET["slug"];
// IMPORTANT: perform some data sanitization here
// I'm just going to make sure it's only letters, numbers and
// hyphens/underscores as an example.
$slug = preg_replace("/[^a-zA-Z0-9\-_]+/", "", $slug);
// Now look up in your database
// Ideally you'd have a slug column to compare this with, that you can fill
// when your record is created/updated
// You'd also be best off using bound parameters here, rather than directly
// adding the data into the query string. I personally use the MDB2 PEAR
// module but feel free to use whatever you normally use.
$qry = "SELECT * FROM characters WHERE slug='" . $slug . "'";
$result = mysql_query($qry, $db);
// do something based on this result, fail if none found
// or show details if OK etc
// ...
?>
Надеюсь, это поможет! Как всегда, используйте связанные параметры, где это возможно, для ваших запросов и хорошо выполняйте очистку пользовательских данных. Модуль PEAR MDB2 имеет хорошую страницу о том, как это сделать здесь .
Редактировать 2 быстрая и грязная настройка: -)
Файл
.htaccess выглядит следующим образом:
RewriteEngine On
RewriteRule ^character/(.*)$ /character.php?slug=$1
Ваш файл .htaccess в идеале должен находиться в корне вашего сайта. Например, / home / wayne / public_html / или где ваш индексный файл обслуживается с
URL-адрес для сопоставления, который будет http://www.example.com/character/Jim_Carrey - с фразой "Jim_Carrey", которая появится в вашем массиве $ _GET как $ _GET ["slug"]. NB извинения, написал, что PHP сонный прошлой ночью выше, так что неудивительно, что $ _POST не будет работать как запрос GET :-) Я обновил его сейчас!
Наконец, вам нужно убедиться, что ваш хост поддерживает использование файлов .htaccess. Настройка этого выходит за рамки SO, поэтому любые вопросы по настройке Apache лучше задать на https://serverfault.com/