如何从框架集中的新选项卡中隐藏 URL


how to hide the url from a new tab in the frameset

这是我的问题:

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

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

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

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

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

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

通常,要完成此操作,您需要将服务器设置为以这种方式操作。它通常被称为URI,或"漂亮的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和"漂亮URL"的教程http://net.tutsplus.com/tutorials/other/using-htaccess-files-for-pretty-urls/

好吧,像这样隐藏 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);