Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.htaccess rewrite friendly URLs

I am not sure if this is possible, but I have the following URL that I want to make more friendly:

http://www.myurl.com/content.php?id=13089093057550&slug=this-is-a-nice-url

And I want it to look like this:

http://www.myurl.com/this-is-a-nice-url

How do I do this?

like image 857
Oakesy Avatar asked Jun 29 '11 12:06

Oakesy


2 Answers

You'll need to pass the id to your PHP code in order to display content I believe. For example, look at the Stack Overflow URL for this question: http://stackoverflow.com/questions/6520671/htaccess-rewrite-friendly-urls where it is passing both id and slug. So you can have friendly URLs like:

http://www.myurl.com/13089093057550/this-is-a-nice-url

If you decide to go by my suggestion then here is the code you will need in .htaccess:

Options +FollowSymlinks -MultiViews
RewriteEngine On

RewriteRule ^([0-9]*)/(.*)/?$ /content.php?id=$1&slug=$2 [L,QSA]
like image 125
anubhava Avatar answered Oct 06 '22 00:10

anubhava


You can get the slug into the querystring, but without providing the id somewhere it's impossible for Apache to supply it. Hopefully you have a way to get the id out of your database using only the URL slug parameter.

RewriteEngine On
# We don't know the id
RewriteRule (.*)$ /content.php?slug=$1 [L,QSA]
like image 28
Michael Berkowski Avatar answered Oct 06 '22 00:10

Michael Berkowski