【发布时间】:2023-03-04 13:34:01
【问题描述】:
我的localhost/DIRECTORY/AID/ 中有一个index.php 和news.php 和.htaccess 文件
文件夹,我基本上是在尝试从index.php 发送/接收数据到news.php
这是index.php 中的一个函数,它从数据库查询中创建一个链接,并呼出一篇文章的标题。
function news_preview() {
$query = "SELECT * FROM updates ORDER BY update_id DESC LIMIT 5 ";
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
$url = "/news/$row[update_id]/" . preg_replace('/[^a-zA-Z0-9-_]/', '_',
$row['update_title']);
echo "<a href=\"$url\"> " . substr($row['update_title'], 0, 26) . "...</a><br/>";
}
}
echo news_preview();
现在,.htaccess 看起来像这样
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^news/([0-9]+)/([A-Za-z0-9_-]+)$ DIRECTORY/AID/news.php?id=$1 [QSA,L]
现在,解决问题。基本上,当我点击链接时(由 news_preview() 生成)
在index.php 中显示,我在 news.php 页面中得到的只是什么。但是,可能是因为我正在尝试使用 $_GET['title'] 虽然,我不确定这是否是我们检索数据的方式。但是,链接将我带到http://localhost/news/46/This_is_news_title
这是完美的,但我收到Object Not Found 错误
下面是我得到的错误的图像。
【问题讨论】:
-
您确定正在应用您的 htaccess 文件吗?如果你有一堆乱码,你会收到 500 服务器错误吗? htaccess 文件在哪里?
-
在 AID/ 文件夹中以及
index.php和news.php问题是我不知道如何从news.php中的 url 获取数据 -
好的,你可以试试:
http://localhost/DIRECTORY/AID/news.php?id=46吗? -
Please, don't use
mysql_*functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解prepared statements,并使用PDO 或MySQLi - this article 将帮助您决定哪个。如果你选择 PDO,here is a good tutorial.
标签: php apache url-rewriting get