Skip to content

WordPress PermaLinks not working on localhost

If you have copied your live site for your server to your local machine or even installed the latest version of WordPress on your local machine but now you're finding none of your links work and you're unable to click around your site. It may be because your Apache2 Url rewriting module has not been enabled on your ubuntu development localhost.   Fortunately this is really easy to sort out.

What is mod_rewrite

Mod_rewrite is used by Apcahe2 web server to dynamically rewrite website URL's at the server side.  i.e. When the user asks to go to http://localhost/some_page_on_the_server the mod_rewrite module will translate that to the server as http://localhost/post.php?category=1&post=2, which is then handled by the server to get the appropriate page.

Why use mod_rewrite

It is generally used to improve user and search engine friendliness to expose more memorable and crawl-able URLS.  So effectively to help improve your Search Engine Optimization (SEO).  On a production server this will usually be implemented by default, to improve SEO.

How to enable mod_rewrite on Apache2

The default installation of Apache2 is usually installed with mod_rewrite installed but never enabled.  To check this is the case, we can verify it's existence.

Open your terminal window ctrl + alt + t

Shell

The server should respond with

Shell

We can now enable the module

Shell

Then we need to update your site configuration.  This is assuming you have installed WordPress in the default website

Shell

Inside the the file directly under <VirtualHost *:80> on line 1 paste the following

Shell

save and exit the file (ctrl + x )

restart your Apache2 web server

Shell

We now need to create or edit your .htaccess file in your WordPress website directory

Shell

You now need to add the following code

Shell

To ensure that other users are only allowed to read your .htaccess file you need to update the permissions

Shell

You should now be good to go and should be able to browse your site with all the links working!

Gary Woodfine
Latest posts by Gary Woodfine (see all)