我想隐藏像这样的 URL 的某些部分
http://localhost/hotel/index.php?&do=home
我希望它只显示
http://localhost/hotel/home
谁能给我一个最简单的php代码来做到这一点?谢谢你。
以下是在 URL 中隐藏信息的不同方法:
使用表格并发布信息。这可能需要在源页面中添加额外的代码,但不需要在目标页面中进行逻辑更改(只需将 Request.QueryString 更改为 Request.Form)。虽然 POST 并非不可能,但它肯定不如使用 QueryString 参数吸引人。
使用会话变量在页面之间传递信息。与 (1) 相比,这可能是一个更大的努力,因为您需要考虑会话变量检查(例如,如果您经常检查状态,用户现在可能很难使用他们的后退和前进按钮导航) . 您还需要处理未启用会话 cookie 的情况(此解决方案不适用于这些人)。
在 QueryString 中使用“编码”或无意义的信息代替真实数据。这将需要在所有页面提交的任一端创建编码和解码方案。当然,用户仍然可以对您的方案进行试验和逆向工程,但是他们不太可能快速对现有的 QueryString 做出有意义的更改。
使用框架集。我真的不推荐这种方法,尽管它很常见。如果您试图隐藏信息而不是使其更难修改,用户仍然可以右键单击各个框架并单击属性,以检索通过 QueryString 传递的所有信息。
使用 Server.Transfer 将控制移动到第二个页面,该页面仍然可以访问传递给第一页的 QueryString 参数(其 URL 仅短暂可见)。
远离 QueryStrings 的一个问题是它们使您的网站更难使用。如果您依赖 (3) 以外的任何方法,则用户不可能按原样为当前页面添加书签......他们只能以类似于如果他们只是键入 URL 会发生的情况为页面添加书签in(这甚至可能不起作用,具体取决于您构建页面的方式)。因此,在决定您的信息的真正敏感程度以及您愿意在可用性与安全性之间取得平衡时,请记住这一点。