从用户网址浏览器地址栏中显示的网址中删除index.php?getid =

时间:2019-05-22 01:07:21

标签: php mysql get

我有一个显示资产的页面,当用户单击特定资产的链接时,它将加载一个新页面,该页面显示该资产的所有数据。

在浏览器的网址栏中,它显示如下:

https://www.mywebsite.com/dashboard/asset_items/edit/index.php? 
getid=2121

我想使地址栏不显示...

index.php?getid=2121

而是显示类似以下内容:

https://www.mywebsite.com/dashboard/asset_items/edit/

或者也许:

https://www.mywebsite.com/dashboard/asset_items/edit/2121

重点是不显示

index.php?getid=

我尝试了许多不同的示例,包括使用.htaccess重写代码。我已成功删除:

index.php

来自url地址栏中显示的内容,但仍然显示如下:

https://www.mywebsite.com/dashboard/asset_items/edit/?getid=2121

这是我在不同页面和.htaccess中的内容

在asset_items / index.php中,我有以下一行,这是将用户带到显示该特定资产数据的页面的链接...

<a href="edit/index.php?getid=' . $row['assetid'] . '">' . 
$row['assetid'] . '</a>

在asset_items / edit / index.php中,我具有以下内容,其从上一页中获取了资产ID ...

$current_asset = '"' . $_GET['getid'] . '"';
$sql = 'SELECT * FROM assets u 
LEFT JOIN assets_assetcategory ur ON u.assetid = ur.assets_id
LEFT JOIN asset_category r ON ur.asset_category_id = r.id
WHERE r.name = r.name AND u.assetid =' . $current_asset .'';    

// loop through results of database query, displaying them in 
the table

    foreach ($db->query($sql) as $row) {....

在.htacess中,我有以下内容。...

Options -Indexes
RewriteEngine On
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) $1/$2 [R=301,NE,L]

因此,以上所述,一切正常,并且从URL地址栏中显示的内容中删除了index.php,但是

?getid=2121

仍然显示。当然,2121不是唯一的资产,只是我在此示例中使用的资产。

最终目标是,对于从asset_items / index.php页面上单击的任何资产,应该显示asset_items / edit / index.php,但网址浏览器不应显示完整网址的结尾包含

index.php?getid=****

0 个答案:

没有答案