Reputation: 1049
I made some searches on the web about URL rewriting, and found some good indications, but not what I hoped to find. For example, I have www.example.com?id=11
and I'd like to show something like www.example.com/mike
where mike
is the user for that id.
The best solution by now is to use rewrite as:
www.example.com/11/mike
to www.example.com?id=11
I know how to write that rule, but is there a possibility to call that without the id number? Someway, to hide it?
Upvotes: 0
Views: 81
Reputation: 1959
Not really. If you need the data passed to the script as a $_GET
variable then it has to be passed through the URL.
You can switch over to using $_POST
data instead of $_GET
, but I wouldn't recommend that. You can also just change what your script expects and user the username instead of the ID, then you'd have to pass the username (just like you want) and can drop passing the ID altogether.
Upvotes: 1
Reputation: 97815
First, you're rewriting www.abc.com/11/mike
to www.abc.com?id=11
, not the other way around, i.e., the first external request is written to the second internal request, which is then processed.
To answer your question, no, unless your application knows how to fetch the object from mike
instead of 11
. If it does, you for instance could rewrite:
www.abc.com/11/mike to www.abc.com/?id=mike
or you could do it without query strings at all and read the data from $_SERVER['PATH_INFO']
, as long as your web server is correctly configured.
Upvotes: 1
Reputation: 342
if you wanted /mike you would have to intercept that in your code and store it as an index. So instead of doing a search on id = 11, you'd do slug = mike instead.
If you go this route you will need to make the associated field an index to prevent any unnecessary database load.
Upvotes: 2