这是我的问题:
我想隐藏url中的参数,因此任何页面都只能显示www.website.com
我为index.php页面添加了一个框架集,
当用户点击此页面中的任何链接
时,它是完美的但如果用户通过右键单击打开链接 - >在新标签或窗口中打开,
将显示带参数的整个网址
当用户通过在新标签页中打开来阻止用户在框架集中打开页面时,是否有任何想法?
答案 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);