Wordpress and permalinks without mod_rewrite
Fri, 07 Sep 2007 01:21 - Daniel - Blogs - Comments (2)
Even if your webhost doesn't let you use mod_rewrite, you can get nice URL with a simple hack. Mosty webhosts let you configure custom error pages. That means, if a visitors tries to access a page that doesn't exist, you can show him your special 404 page instead of the apache default.
We will use this for our permalinks. If you enable permalinks and mod_rewrite doesn't work, all you'll see is a 404 page. We'll now create custom error handlers for 404 to display index.php instead. Every time a visitor opens a permalink, he will trigger this custom error handler and he'll see the correct site. Wordpress doesn't care, if mod_rewrite or our custom error handler has redirected this user.
All you need to do is this:
Switch Wordpress to your preferred permalink structure.
Either write this into your .htaccess file (and delete everything that was in there):
ErrorDocument 404 /index.php
ErrorDocument 403 /index.php
ErrorDocument 401 /index.php
or, if you have a management panel like confixx or syscp, you can configure error documents there:
You should add this to your index.php file, right after the <?php
in a new line
header( 'HTTP/1.1 200 OK' );
Tags:
Comments
Richard, Germany - Fri, 08 Feb 2008 10:12
That is quite clever! Thanks for that idea.
Are there any SEO disadvantages for this? Or is this take care of by the header( 'HTTP/1.1 200 OK' ); status?
Also, what happens, if someone actually should land at a 404 error page? Does this make all URLs valid?
Daniel, Austria - Fri, 08 Feb 2008 23:34
The header() line overrides the 404 header the webserver sends.
Well, I'm not sure if this makes all pages valid. Wordpress still send a 404 error page to the user and an additional Status: 404 header. Not sure how crawlers react on this.