Zhang Zhenyun
Zhang Zhenyun

Reputation: 23

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

Here is my problem:

I want to hide the parameters in url, so any page only can display www.website.com

I added a frameset for the index.php page,

it's perfect when user click any link in this page,

but if user open a link by right click -> open in new tab or window,

the whole URL with parameters will be shown,

any idea to prevent when user open a page in frameset by open in new tab?

Upvotes: 0

Views: 1093

Answers (2)

CP510
CP510

Reputation: 2272

Generally to accomplish this you need to set up the server to act in this way. It's generally refered to as URI's, or "Pretty URI's". This is also a key component in designing your app in RESTful senses.

If you have access to your servers configuration and are running a LAMP stack you can accomplish this with .htaccess files. But you will still need your server-side script to handle the rest of the requests.

Here's an example .htaccess file that will remove the extension and query:

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]

But you should refer to RESTful anyways if you definatly want precise URI's http://phpmaster.com/rest-can-you-do-more-than-spell-it-1/

And another tutorial on .htaccess and "Pretty URLs" http://net.tutsplus.com/tutorials/other/using-htaccess-files-for-pretty-urls/

Upvotes: 1

Niet the Dark Absol
Niet the Dark Absol

Reputation: 324650

Well, hiding URLs like this is generally not a good idea, but you could try this:

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

You can also use some simple JavaScript so you don't have to manually add the event handler to each link:

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

Upvotes: 0

Related Questions