【问题标题】:how to hide the url from a new tab in the frameset如何在框架集中的新选项卡中隐藏 url
【发布时间】:2013-01-29 04:13:44
【问题描述】:

这是我的问题:

我想隐藏url中的参数,所以任何页面都只能显示www.website.com

我为 index.php 页面添加了一个框架集,

当用户点击此页面中的任何链接时,这是完美的,

但如果用户通过右键单击打开链接 -> 在新选项卡或窗口中打开,

将显示带有参数的整个 URL,

当用户通过在新选项卡中打开在框架集中打开页面时,有什么想法可以防止?

【问题讨论】:

标签: php html


【解决方案1】:

通常要完成此操作,您需要将服务器设置为以这种方式操作。它通常被称为 URI 或“Pretty URI”。这也是在 RESTful 意义上设计应用的关键组件。

如果您有权访问服务器配置并且正在运行 LAMP 堆栈,则可以使用 .htaccess 文件完成此操作。但是您仍然需要您的服务器端脚本来处理其余的请求。

这是一个示例 .htaccess 文件,它将删除扩展名和查询:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.#?\ ]+\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(([^/]+/)*[^.]+)\.php /$1 [R=301,L]

但是如果你肯定想要精确的 URI,你应该参考 RESTful http://phpmaster.com/rest-can-you-do-more-than-spell-it-1/

还有另一个关于 .htaccess 和“Pretty URLs”的教程 http://net.tutsplus.com/tutorials/other/using-htaccess-files-for-pretty-urls/

【讨论】:

  • 谢谢,但我需要更改此查询中的任何脚本吗?我的服务器是 IIS 7,我用这个查询创建了一个 htaccess 文件,并导入到 IIS 7,但仍然显示参数
  • IIS 7 不支持 apache 的 .htaccess 文件。这是一篇关于转换它们的文章。 iis.net/learn/extensions/url-rewrite-module/… 但鉴于我不了解 IIS,我真的帮不上什么忙了。
【解决方案2】:

嗯,像这样隐藏 URL 通常不是一个好主意,但你可以试试这个:

<a href="somepage.php" onclick="location.href=this.href;return false;">Link</a>

您还可以使用一些简单的 JavaScript,这样您就不必手动将事件处理程序添加到每个链接:

document.body.addEventListener("click",function(e) {
    var t = e.srcElement || e.target;
    if( !t.tagName) t = t.parentNode;
    if( t.tagName.toLowerCase() == "a") {
        location.href = t.href;
        return false;
    }
},false);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-14
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多