You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP实现自定义本地URL从MySQL读取对应内容及数据配置

实现自定义本地URL从MySQL获取对应内容的PHP方案

我来一步步帮你实现这个需求,咱们从数据库准备到最终的URL访问展示,一步步落地:

1. 创建MySQL数据库表

首先得建一张表来存储自定义URL、标题和内容,执行下面的SQL语句:

CREATE TABLE IF NOT EXISTS custom_pages (
    id INT AUTO_INCREMENT PRIMARY KEY,
    Title VARCHAR(255) NOT NULL,
    Content TEXT NOT NULL,
    Url VARCHAR(255) NOT NULL UNIQUE
);

这里把Url字段设为唯一,确保每个自定义URL只对应一条内容,避免出现冲突。

2. 插入示例数据

接下来把你给的示例数据插入到表里,用PHP预处理语句来做,能有效防止SQL注入:

<?php
// 替换成你自己的数据库连接信息
$host = 'localhost';
$dbname = '你的数据库名';
$username = '数据库用户名';
$password = '数据库密码';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 插入示例数据
    $sql = "INSERT INTO custom_pages (Title, Content, Url) VALUES (:title, :content, :url)";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([
        ':title' => 'About us',
        ':content' => 'xyz',
        ':url' => '/aboutus'
    ]);

    echo "数据插入成功!";
} catch(PDOException $e) {
    echo "错误: " . $e->getMessage();
}
$pdo = null;
?>

把这段代码存成form.php(和你示例里的URL对应),运行一次就能把数据插入到数据库了。

3. 配置URL重写(.htaccess)

要让localhost/aboutus这样的友好URL能被PHP处理,咱们需要用Apache的URL重写模块,在网站根目录创建.htaccess文件,写入以下内容:

RewriteEngine On

# 如果请求的不是真实文件或目录,就转发到index.php处理
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]

注意:要确保你的Apache服务器开启了mod_rewrite模块,不然重写规则不会生效。

4. 核心PHP处理逻辑(index.php)

现在写处理请求的核心文件index.php,它会获取当前请求的URL,从数据库拉取对应内容并展示:

<?php
// 替换成你自己的数据库连接信息
$host = 'localhost';
$dbname = '你的数据库名';
$username = '数据库用户名';
$password = '数据库密码';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 获取当前请求的URL路径
    $requestedUrl = '/' . ($_GET['url'] ?? '');

    // 从数据库查询对应内容
    $sql = "SELECT Title, Content FROM custom_pages WHERE Url = :url";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([':url' => $requestedUrl]);
    $page = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($page) {
        // 找到内容,安全展示(用htmlspecialchars防止XSS攻击)
        echo "<h1>标题:" . htmlspecialchars($page['Title']) . "</h1>";
        echo "<p>内容:" . htmlspecialchars($page['Content']) . "</p>";
    } else {
        // 没找到对应URL,返回404状态码
        http_response_code(404);
        echo "404 页面不存在";
    }
} catch(PDOException $e) {
    echo "数据库错误: " . $e->getMessage();
}
$pdo = null;
?>

这里用htmlspecialchars()转义输出内容,是防止XSS攻击的重要安全细节,千万别忽略。

测试效果

现在你访问localhost/aboutus,就能看到:

标题:About us
内容:xyz

完全符合你的需求!之后要添加更多自定义URL,只要往数据库里插入对应的Title、Content和Url就行,不需要修改代码。

内容的提问来源于stack exchange,提问作者Amit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:35:34