A few days ago, I downloaded a XAMPP package to be used on my local computer. XAMPP is an easy to install Apache distribution containing MySQL, PHP and Perl. (Actually Apache, MySQL, PHP + PEAR, Perl, mod_php, mod_perl, mod_ssl, OpenSSL, phpMyAdmin, Webalizer, Mercury Mail Transport System for Win32 and NetWare Systems v3.32, Ming, JpGraph, FileZilla FTP Server, mcrypt, eAccelerator, SQLite, and WEB-DAV + mod_auth_mysql.) XAMPP is really very easy to install and to use – just download, extract and start. Installation is simple and you can do it in no time.
After installation, next spare some time to fix about security pointing by the main page of your local XAMPP frontpage. So now, I’ve got Apache, MySQL, PHP installed and they are ran well. (This version contains:
Yesterday, I installed Wordpress on that machine and dump my blog db and wp on it. After set the configuration file and setting just like my live blog, the front page of my WordPress blog came up. I try to click one post and… voila ! I got 404 error !
I traced all configuration and it’s all as it should. I checked Apache httpd.conf and I suspected one of the modules there as the problem maker. Since I’m not Apache master and there were so many modules there, I decided googling the web for this cause. And exactly, I landed on this site.
The problem is the permalink feature on wordpress won’t work on default XAMPP installation and return 404 saying that the post is not found. By default, mod_rewrite is not enabled in XAMPP. More over, AllowOverride directive in Apache configuration file is also set to None by default, causing Apache web server to ignore any .htaccess file, which used to rewrite the permalinks to the post’s actual url.
Solution ? As MyDigitalLife described :
To use permalinks in WordPress that installed on XAMPP-based server, edit the httpd.conf that locates in \apache\conf directory. Open httpd.conf in any text editor, search for “mod_rewrite”. You should come to a line like this:
#LoadModule rewrite_module modules/mod_rewrite.so
Remove the hash sign (#) from the line. The # indicates the line is not in effect. The changed line should looks like this:
LoadModule rewrite_module modules/mod_rewrite.so
After that, search for “AllowOverride”. You will come to a line like this:
AllowOverride None
If the above line is contained within default directory (mean the directory declaration is just), then it can be left as it is. Continue searching and you would come to a second instance of AllowOverride which is contained inside your web server’s document root (default for xampp is in Windows). Change the None to All to make the line looks like this:
AllowOverride All
Restart the Apache.
And now, it works like a charm!









