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

时间:2013-01-29 04:13:45

标签: php html

这是我的问题:

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

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

当用户点击此页面中的任何链接

时,它是完美的

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

将显示带参数的整个网址

当用户通过在新标签页中打开来阻止用户在框架集中打开页面时,是否有任何想法?

2 个答案:

答案 0 :(得分: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和“漂亮网址”的另一个教程 http://net.tutsplus.com/tutorials/other/using-htaccess-files-for-pretty-urls/

答案 1 :(得分:0)

好吧,隐藏这样的网址通常不是一个好主意,但你可以试试这个:

<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);