Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

How to hide URL GET parameters (http://domain.com/MyFirstYii/page?view=about). I've searched lot of posts. They all are saying about rewrite and URL manager, but i couldn't achieve what i want. :(

My scenario is,

I just want to hide the URL GET parameters.

Eg:

http://domain.com/MyFirstYii/page***?view=about***

I wanted to hide ***?view=about***.

Then URL should look like this http://domain.com/MyFirstYii/page. Other pages like this http://domain.com/MyFirstYii/post. In a simple words my GET parameters should act like POST parameters.

Thanks in Advance.

Edit:

I want to create some rules in the URLManager, but what kind of rules will hide the GET parameter.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
391 views
Welcome To Ask or Share your Answers For Others

1 Answer

w in regexp means ?word“ character and such url part as ?my-prety-page“ will NOT match. To hide GET params you must improve your urlManager rules. You can write such a rule for pages using SEF urls:

'<controller:w+>/<id:d+>/<title:[^/]*>/*' => '<controller>/view'

In this case when you enter url

http://example.com/page/12/my-prety-title

a Page controller will be called to perform view action with id and title as arguments. It is the same if you enter this url:

http://example.com/page/view?id=12&title=my-prety-title

The last part /* in rule allows to keep additional params. E.g. if your address is

http://example.com/user/55/john-doe-junior/foo/bar/

in UserController's actionView you can write

echo '<pre>' ;
print_r($_GET);
echo '</pre>' ;
die();

and you'll see

Array
(
    [id] => 55
    [title] => john-doe-junior
    [foo] => bar
)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...