.htaccess: RewriteEngine not allowed here
Solution 1
minimum configuration for your .htaccess to work:
AllowOverride FileInfo Options
allowing all configuration will work as well:
AllowOverride All
Solution 2
Let's say your DOCUMENT_ROOT is /home/foo/web
then have this config in your httpd.conf file:
<Directory "/home/foo/web">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
This should take care of RewriteEngine is not allowed
error you're getting.
Solution 3
Just an idea, this happened to me, and I've lost a lot of time trying to solve it.
If you have a directory like d:/web/my-sites/some-site/
And you place the .htaccess
on d:/web/my-sites/some-site/.htaccess
(where it supposed to be).
If you have ANY .htaccess
files before this directory, Apache reads that files, and blocks the execution of the entire path, producing an internal server error.
I.E.: You have d:/web/my-sites/.htaccess
Solution 4
In httpd version 2.4 (2.4.3 and 2.4.4), take a look at /etc/httpd/conf.d/wordpress.conf There is one entry for: ....
Change: "AllowOverride Options" to "AllowOverride All"
in wordpress.conf also in addition to changing httpd.conf. Restart the http server before the changes will take effect.
Admin
Updated on June 29, 2020Comments
-
Admin almost 4 years
I uploaded the .htaccess to the server and received an Error 500 (Internal Server Error).
And in the error log I had the following error:
.../.htaccess: RewriteEngine not allowed here
But
mod_rewrite.so
is enabled.So, do I need to change
<Directory /> Options FollowSymLinks AllowOverride None </Directory>
to
<Directory /> Options FollowSymLinks AllowOverride All </Directory>
in the /etc/httpd/conf/httpd.conf file?
Or could it be something else? The .htaccess file should be okay, because it works perfectly fine on my localhost. I just don't want to screw anything up.
Here's part of my .htaccess file:
Options All -Indexes Options +FollowSymLinks RewriteEngine On
-
Admin over 12 yearsOh, I think I will use that thanks! But I don't think that gets rid of the problem that RewriteEngine is not allowed.
-
Sérgio almost 8 yearsAllowOverride All wroked but AllowOverride FileInfo Options doesn't, wp-includes/.htaccess: deny not allowed here
-
Ilyas karim over 7 years@Jacek Kaniuk How to allow htaccess in 1and1
-
benck over 7 yearsI just found a solution, stackoverflow.com/questions/32084190/…
-
MrWhite about 6 yearsThis should still depends on how/where you have
AllowOverride
(andAllowOverrideList
on Apache 2.4+) set. And possibly the Apache version, since the default value of theAllowOverride
directive changed between Apache 2.2 and 2.4. -
MrWhite about 6 years
AllowOverride
controls the type of directives that can be used in.htaccess
. So whetherAllowOverride FileInfo Options
is sufficient is entirely dependent on what directives you are using.FileInfo
is required for mod_rewrite,FileInfo Options
is required for the.htaccess
file in the question. To useDeny
in.htaccess
you also need to include theLimit
directive-type. @Sérgio But most just stick withAll
for "ease of use". -
MrWhite about 6 yearsHowever, contrary to what this answer implies, you should never set anything other than
AllowOverride None
in the<Directory />
container (as stated in the question) - which refers to the server root - the Apache docs specifically warn against doing this "for security and performance reasons". Instead, this should be set for the specific directory that contains the.htaccess
file, such as the DOCUMENT_ROOT, as mentioned in @anubhava's answer. -
MrWhite about 6 yearsJust to add, only enable
MultiViews
if you specifically need it. If you are using mod_rewrite, as in this example, then you probably don't - and this can potentially result in unexpected conflicts.