8

The actually URL which my app uses is:

http://site.com/search.php?search=iPhone 

but I would like it to be possible to achieve the same with

http://site.com/iPhone 

I have no experience of rewrite rules, how can I set this up?

The solution has worked but the new URL is displayed in the address bar. I thought it would have been possible to set this up so that it appears as though the page location is

http://site.com/iPhone

without changing to display

http://site.com/search.php?search=iPhone 

Is this possible? Thanks.

3 Answers 3

12

Create a file called .htaccess in the root of your website and put this in it.

RewriteEngine on Options +FollowSymlinks RewriteBase / RewriteRule ^(.*) search.php?search=$1 [R] 

Should do the trick.

I would suggest however that you make it a bit more specific, so maybe require the user of a search directory in your url. eg instead of mysite.com/IPhone use mysite.com/search/IPhone which would work like

RewriteEngine on Options +FollowSymlinks RewriteBase / RewriteRule ^search/(.*) search.php?search=$1 [R] 

This makes it easier to have normal pages that arnt redirected, such as about us or a basic homepage.

As Chris says, this is not PHP but Apache that does this, and whether it works can depend on your hosting setup.

Sign up to request clarification or add additional context in comments.

Comments

5

You need to specify something like this in your .htaccess file:

RewriteEngine on RewriteRule /(.*) /search.php?search=$1 

Check also:

1 Comment

Why does your regex only try to match numbers? Just curious since his example used "iPhone", not a number.
3

Rewrite rules aren't part of PHP as far as I'm aware, but Apache (specifically mod_rewrite) or whatever server you're using. For Apache, you need on the server to have a file called .htaccess, and in it put something like:

RewriteEngine on RewriteRule ^(\w+)/?$ /index.php?search=$1 

^(\w+)/?$ is a regular expression - it matches any word of 1 or more characters, followed by a / maybe. So it changes site.com/iPhone into site.com/index.php?search=iPhone. Sound about right?

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.