|
Posted by Benjamin Niemann on 04/02/06 17:44
Jonathan N. Little wrote:
> Okay I have been futzing with this for a bit, so a request other
> viewpoints.
>
> Using a website database and you want to present with static URLs so a
> call to:
>
> http://www.example.com/frontend.php?id=2
>
> Becomes:
>
> http://www.example.com/page/2
>
> With .htaccess:
> RewriteRule ^page/([\d]*) frontend?id=$1 [L]
>
> Ok, that takes care of static link in a webpage, but what if you want to
> get a page as a result of some form query and still want the result to
> appear as a static URL? Say a page selector form a could go to a
> intermediate parsing script like:
>
> <form action="http://www.example.com/q2url.php">
> <select name="id">
> <option value="25">Some page</option>
> ...
>
> Where q2url.php is:
>
> $id = $_GET['pageID'];
> $redirect = "http://www.example.com/page/$id";
> header("Location: $redirect");
>
> So the result will appear again as a static:
> http://www.example.com/page/25
>
> Or is there another way to do this with a rewrite rule. If so any
> advantages/disadvantages?
I can't think of a better way. The initial URL is created by the user-agent,
and this will always create ?id=NNN URLs. You may intercept the form
submission using JavaScript, construct the correct URL and use
window.location. But your q2url.php should still be in place to handle
non-JS user-agents.
BTW: make sure, your 'page selector' is not the only way to open a page, or
search engines will not find it.
--
Benjamin Niemann
Email: pink at odahoda dot de
WWW: http://pink.odahoda.de/
Navigation:
[Reply to this message]
|