【发布时间】:2018-04-25 01:47:26
【问题描述】:
我正在练习创建一个 CMS。我将所有 url 请求设置为index.php。我通过$path 变量获取请求数据。
.htAccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^(.*)$ index.php?path=$1 [QSA,L]
所以,我在$path 上获取数据,并在页面上向echo 数据发出sql 请求。我的 sql 表有 2 列 data 和 url。所以,我的代码是:
$sql = "SELECT * FROM post where url='" . $path . "'";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
if(is_array($row)) {
echo $row["data"];
}
但是当我创建类别时问题开始了,我想我必须添加一个新列 ctg 所以我做到了。现在当我收到像 localhost/php/how-to-make-a-page 这样的请求时,我想我必须这样做:
if (strpos($path, '/') !== false) {
$array = explode("/", $path);
$url = end($array);
$sql = "SELECT * FROM post where url='" . $url . "'";
}
但我对这种想法还很幼稚。因为localhost/php/how-to-make-a-page 和localhost/Anything/how-to-make-a-page 给了我同样的结果。请问谁能解释一下处理这种类型的请求?
【问题讨论】: