.htaccess: RewriteEngine not allowed here

2020-01-28 05:27发布

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

8条回答
时光不老,我们不散
2楼-- · 2020-01-28 06:05

you could use something like this in your .htaccess file:

RewriteEngine on
RewriteCond $1 !^(index\.php|html|test)
RewriteRule ^(.*)$ /index.php/$1 [L]

this code simply means, that anything not pointing to index.php or html or test should be directed to index.php!

Hope this is helpful!

查看更多
我欲成王,谁敢阻挡
3楼-- · 2020-01-28 06:09

I was getting this type of error from the Google Cloud instance after checking the logs from the /var/log/apache2/error.log

.htaccess: RewriteEngine not allowed here

To get rid of the above error & 500 Internal Server Error, follow these simple steps

sudo nano /etc/apache2/apache2.conf

Then add these snippets of lines

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

After you’ve made that change, make sure to restart the server:

sudo service apache2 restart

This worked for me in getting rid of 500 Internal Server Error hosted on Google Cloud instance

查看更多
霸刀☆藐视天下
4楼-- · 2020-01-28 06:19

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.

查看更多
5楼-- · 2020-01-28 06:21

minimum configuration for your .htaccess to work:

AllowOverride FileInfo Options

allowing all configuration will work as well:

AllowOverride All
查看更多
时光不老,我们不散
6楼-- · 2020-01-28 06:22

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.

查看更多
够拽才男人
7楼-- · 2020-01-28 06:27

Also, just make sure you are editing the correct config file. I had created a file under /etc/apache2/users/USERNAME.conf but was editing /etc/apache2/httpd.conf.

Removing the USERNAME.conf file worked.

查看更多
登录 后发表回答