Check For Module Presence in .htaccess

Written by David Walsh on Friday, November 7, 2008


One of my favorite Apache modules is mod_rewrite. mod_rewrite allows me to manipulate page URLs so that I can search engine friendly URLs. Not every Apache server has the mod_rewrite module installed so you will want to add a conditional statement within your .htaccess file to make sure it’s there.

The .htaccess

#Wordpress's .htaccess code
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

If the “mod_rewrite.c” module is present, that means that mod_rewrite is available and will be used. If not, the mod_rewrite code will be ignored. Using this conditional statement will prevent 500 Internal Server Errors.


Epic Discussion

Commenter Avatar November 07 / #
Jeff Hartman says:

So what is the fallback for when it is not available? If you do this you need to make sure your code has a way to handle it, especially if your mod_rewrite conditions are passing get vars.

I personally would like to know about a 500 server error so that I could fix the problem.

Commenter Avatar November 25 / #
shinzies says:

Would it be fine to include this code into httpd.conf itself?
Or is that a bad idea?

Thanks David.

Commenter Avatar November 25 / #
shinzies says:

Nope, the answer is it is bad idea because, Rewrite Base is only valid per-directory config files.

:D

Commenter Avatar October 14 / #

how to make a link like this rerwiteRule index.php? module = article & id = 5

thanks

Be Heard!

I want to hear what you have to say! Share your comments and questions below.

Name*:
Email*:
Website:  


© David Walsh 2007-2010. Contact David Walsh. Powered by the remarkable MooTools javascript framework.