Friday, May 17, 2024
 Popular · Latest · Hot · Upcoming
67
rated 0 times [  67] [ 0]  / answers: 1 / hits: 252336  / 3 Years ago, mon, august 30, 2021, 10:58:51

In almost every solution of "How to activate htaccess", they say that the /etc/apache2/sites-available/default file needs to be edited. But there isn't such file in Apache 2.4.7



I read somewhere that the new default file is 000-default.conf. So I edited that one and tried to add the line:



AllowOverride All


But Apache2 did not restart correctly and gave an error. From an apache2 documentation, I found that AllowOverride is only allowed under the <Directory> section. Then I tried adding this:



<Directory "/var/www">
AllowOverride All
</Directory>


And this seems to work. But I am not sure if I should have put /var/www there. Is it a correct way of doing it or will my computer blow up somehow?


More From » apache2

 Answers
6

tl;dr


Yes it's the correct way.

But to be more semantic: Yes, it's the correct way to allow .htaccess to override all directives in the /var/www directory.




As you found out, AllowOverride is allowed only under the Directory section.


Using your example:


<Directory "/var/www">
AllowOverride All
</Directory>

This is telling apache, that all configurations can be overridden in the /var/www and all its sub-directories (recursively).




For a better example, consider you have the following configuration in your virtual host:


<Directory "/var/www">
AllowOverride All
</Directory>

<Directory "/var/www/uploads">
AllowOverride Limit
</Directory>

And the following directory structure:


var/
www/
.htaccess
uploads/
.htaccess
a/
.htaccess
b/
.htaccess
code/
.htaccess
c/
.htaccess
d/
.htaccess

What I did here, is create an .htaccess in every sub-directory of the /var/www directory.

It usually shouldn't be like so, but this is just for the sake of the example


Comparing the directory structure with the configuration, it means that all .htaccess files inside in the /var/www folder and its sub-directories, excluding the /var/www/uploads directory and its sub-directories, can override all kinds of directives.


But /var/www/uploads and its sub-directories can only use the .htaccess file to override the Allow, Deny and Order directives.


Note: As of apache 2.4 (Which is available by default in 13.10+) the Allow, Deny and Order directives were replaced by a single directive named Require.


[#26670] Wednesday, September 1, 2021, 3 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
amacal

Total Points: 457
Total Questions: 102
Total Answers: 116

Location: Thailand
Member since Thu, Apr 22, 2021
3 Years ago
amacal questions
Thu, Aug 11, 22, 17:35, 2 Years ago
Thu, Apr 13, 23, 18:00, 1 Year ago
Sat, Oct 22, 22, 09:15, 2 Years ago
;