我有一个可以与sub_id一起正常工作的URL,但是现在我想修改该URL,并且要显示“ sub_categories_name”和“ sub_id”。但是,“ sub_categories_name”就像虚拟对象一样,即没有用,如果一个人仅使用“ sub_id”搜索,它将显示结果。
我已经尝试过类似的操作,但是页面未显示任何数据
<?php
$categories_name = $_GET['categories_name'];
$result = "SELECT * FROM sub_categories where
categories_name='$categories_name'";
$data =mysqli_query ($conn, $result);
while ($row = mysqli_fetch_array($data))
{
$sub_categories_name = $row['sub_categories_name'];
$sub_id = $row['sub_id'];
$sub_categories_name = urldecode($sub_categories_name );
$sub_categories_name = str_replace(' ', '-', $sub_categories_name);
$url = '/classified/' . urlencode($sub_id) . '-' . urlencode($sub_categories_name);
?>
<a href="/classified/1-Health-and-Beauty">
<div class="cat-box p-0 m-0 cat-url">
<p class="subcat-url"><?php echo $sub_categories_name;?></p>
</div>
</a>
<?php }?>
当我的网址类似'http://localhost/classified/1'时,它显示的数据,但是当我的网址类似'http://localhost/classified/1-Health-and-Beauty'时,它不显示任何数据。我也只想显示数据。
这是我的{DOCUMENT_ROOT}/classified/.htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ category-classifieds.php?sub_id=$1 [L]
HTML链接的实际生成的源代码片段。 (浏览器视图源)就像
<a href="/classified/1-Health-and-Beauty">
<div class="cat-box p-0 m-0 cat-url">
<p class="subcat-url">Health and Beauty</p>
</div>
</a>
提前谢谢,请帮帮我。
答案 0 :(得分:0)
正如评论中已经提到的,您必须在项目中的某个地方对$_GET['sub_id']
做出决定。如果改用intval($_GET['sub_id'])
,则数字后的所有内容都会被切断。
基于mod_rewrite
,您可以将规则更改为
RewriteRule ^(\d+) category-classifieds.php?sub_id=$1 [L]
表示基于文件夹的当前URL部分开头的1个或多个数字,而忽略数字之后的任何内容。