Nick Rolando
Nick Rolando

Reputation: 26167

Simple RewriteRule with nginx

I'm trying to write a RewriteRule to make a simple url. I want users to be able to type enter

www.example.com/somepage

and have it take them to

www.example.com/abc/somepage.php

How can this be done in .htaccess?

I've tried these to no avail:

RewriteRule ^somepage$ abc/somepage.php [L]

RewriteRule ^/somepage$ /abc/somepage.php [L]

What am I doing wrong?

Edit: nginx can also handle rewrites in its configuration files (and I think is actually preferred), which was my case (see my answer below). HTH

Upvotes: 1

Views: 131

Answers (2)

Nick Rolando
Nick Rolando

Reputation: 26167

Our nginx server was utilizing .htaccess files (as I implemented rewrites there before), but now it is handling the rewrites in its configuration (.conf) files (which is the recommended method).

I do not have permission to modify the .conf files, so I won't post any untested code.. Hope this helps somebody!

Upvotes: 0

Bobulous
Bobulous

Reputation: 13169

If you want the user's web browser to be redirected to your PHP page then you need the R=301 flag at the end of the RewriteRule.

But if you want the request to be silently rewritten (so that Apache knows where to find the resource, but the user's web browser just sees the "clean" URL) then you don't want the `R' flag.

Try the following:

RewriteRule ^somepage$ /abc/somepage.php

This will only rewrite a request for /somepage so that Apache fetches the content from /abc/somepage.php instead.

Upvotes: 1

Related Questions