How to enable mod_rewrite on Apache 2.4?

I’m using WordPress and wanted to enable pretty urls feature, but they don’t work, i’m thinking that it’s because of mod_rewrite, but i don’t know how to enable it on Apache 2.4 under CentOS 7…

I’ve already try this:

Read More
grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite

but nothing…
Also would like to know it loading all Apache modules has any bad consequence or is it bad practice?

Related posts

7 comments

  1. I found the way to know if a module is loaded or not, here’s to command to list the modules enabled:

    apachectl -M | sort
    

    It will list all enabled modules alphabetically.

    WordPress has an .htaccess but default where it enables rewrite_module for its use:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    

    The only thing that i had to do was add this to the vhost.conf file at /etc/httpd/conf.d/vhosts.conf

    <Directory /var/www/mysite>
        Options Indexes FollowSymLinks
        Require all granted
        AllowOverride All
    </Directory>
    

    That’s because I’m handling my hosts in that file. But it could be done at httpd.conf, or any other .conf file that is Included to the httpd.conf

    Thanks…

  2. Apache2 ships with executables a2enmod and a2dismod that will do all the “dirty work” of symlinking conf files.

    On Debian based distros, the usual location is /etc/apache/mods-available/. Here are the .conf configuration files (when applicable) and a .load file per module with the LoadModule Apache2 directive. A module is enabled if there is a symlink to its .load file in the /etc/apache2/mods-enabled/.

    You would, for example, enable the Rewrite module with command

    $ a2enmod rewrite
    
  3. # nano /etc/httpd/conf/httpd.conf
    

    find

    follow (AllowOverride none) 
    

    and change it

    (AllowOverride All) 
    
  4. In httpd.conf, search for AllowOverride None and change it to AllowOverride All, then restart apache

  5. Yes, changing from “Override None” to “Override All” made it work:

    On Debian 10 config file is here:

    /etc/apache2/apache2.conf

    I don’t know the security risks, but it works!

  6. For CentO 7 Only :
    a2enmod is a Debian/Ubuntu command. You’ll need to edit the Apache config file for a CentOS server.

    What you’d want to do is edit the /etc/httpd/conf/httpd.conf file and make sure that the AllowOverride flag for the block is changed from None to All.

    Basically it should be something like this:
    (Note: there are many comment lines in the default httpd.conf file)

    <Directory “/var/www/html”>
    AllowOverride All
    </Directory>

  7. for rewrite module just check this youtube step by step tutorial related to enable rewrite module in wamp apache https://youtu.be/xIspOX9FuVU?t=1m43s
    Wamp server icon -> Apache -> Apache Modules and mark as check the rewrite module option

    after that you can able to use url rewriting

Comments are closed.