PHPスクリプトのためにあなたの.htaccessファイルは次のようなものに見えるかもしれません、確かにその可能:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
これは、「index.phpにディレクトリまたはファイル名以外のすべてのURLをリライトするURL =型付けされました? -住所"。
あなたがIDを決定するために$ _GET [「URL」]の値を使用することができ、あなたのindex.phpで
:
// init DB layer
if (isset($_GET['url']) && !empty($_GET['url'])) {
$url = my_filter_function($_GET['url']); // filter input
$pdo = my_get_pdo_function(); // get configured PDO objected
$query = "SELECT id FROM my_router_table WHERE url = ? LIMIT 1"; // use prepared statements for security/performance reasons
$stmt = $pdo->prepare($query);
$stmt->bindValue(1, $url, PDO::PARAM_STR); // bind the value as a string
// ternary operator expanded for readability
if ($stmt->execute()) {
$id = $stmt->fetch(PDO::FETCH_ASSOC);
} else {
$id = -1; // 404 page
}
// fetch content/render page according to ID
}
これは明らかに過度に単純化した例であり、あなたが本当にあなたが適切に行う必要がありますあなたの入力をエスケープし、準備されたステートメントを使用してセキュリティリスクを回避します。また、MySQLiや他のデータベースアクセスレイヤーを使用する場合は、準備/実行/フェッチコードが多少異なります。
ありがとうRobinは、上記の答えと同様に、私はそれを行ってみましょう。 – user885609