물론 그것의 가능한, PHP 스크립트에 대한 귀하의 .htaccess는 다음과 같이 보일 수 있습니다 : 이것은 "index.php에 URL = 더 - 직접 입력 한 디렉토리 나 파일 이름을 제외한 모든 URL을 다시 작성합니다
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
-주소". 그런 다음 $ _GET의 값을 사용할 수 있습니다 당신의 index.php에서
는 [ 'URL이'] ID를 확인하려면 다음
// 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