如何设置AllowOverride全部

我想设置AllowOverride all但是我不知道该怎么做。 我find了下面的代码,通过search谷歌和粘贴在.htaccess中

 <Directory> AllowOverride All </Directory> 

但粘贴后,我开始收到"Internal Server Error"

任何人都可以指导我在哪里把这个代码或如何做到这一点?

如果你在Ubuntu上,编辑文件/etc/apache2/apache2.conf (这里我们有一个/var/www的例子):

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

并改变它;

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

然后,

 sudo service apache2 restart 

你可能还需要做sudo a2enmod rewrite来启用模块重写。

AllowOverride的主要目标是Apache主要configuration文件的pipe理器(主要是/ etc / apache2 /中的主要configuration文件)来决定应用程序的哪一部分configuration可以根据每个path进行dynamic修改。

如果您不是服务器的pipe理员,则您将依赖于这些pipe理员允许的AllowOverride级别。 这样他们可以防止你改变一些重要的安全设置;

如果您是主Apacheconfigurationpipe理器,则应始终使用AllowOverride None并将基于.htaccess文件的所有基于google_based的示例转移到主configuration文件上的Directory部分。 由于/my/path/to/a/directory .htaccess文件的.htaccess内容与<Directory /my/path/to/a/directory>指令相同,不同之处在于.htaccessdynamicper-HTTP – 请求configuration更改是减慢您的Web服务器。 总是喜欢静态configuration没有.htaccess检查(你也将避免通过.htaccess改变的安全攻击)。

顺便说一下,在你的例子中,你使用<Directory> ,这将永远是错误的,目录指令总是包含一个path,如<Directory /><Directory C:><Directory /my/path/to/a/directory> 。 当然这不能放在一个.htaccess因为.htaccess就像一个目录指令,但是存在于这个目录下的一个文件中。 当然,你不能改变.htaccess AllowOverride ,因为这条指令是pipe理.htaccess文件的安全级别

在Linux上,为了放松对文档根目录的访问,您应该编辑以下文件:

 /etc/httpd/conf/httpd.conf 

根据您想要放宽访问的目录级别,您必须更改指令

 AllowOverride None 

 AllowOverride All 

所以,假设你想允许访问/ var / www / html目录中的文件,你应该从下面的行改变:

 <Directory "/var/www/html"> AllowOverride None </Directory> 

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

如果您使用的是Linux,您可以编辑目录中的代码

 /etc/httpd/conf/httpd.conf 

现在在这里罚款代码行有点像

 # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. # Order allow,deny Allow from all </Directory> 

AllowOveride None更改为AllowOveride All

现在你可以在你的目录中的.httacess文件中设置任何types的规则,如果其他操作系统试图findhttpd.conf文件并编辑它。

转到your_severpath/apache_ver/conf/在记事本中打开文件httpd.conf

find这一行:

#LoadModule vhost_alias_module modules / mod_vhost_alias.so

删除哈希符号:

LoadModule vhost_alias_module modules / mod_vhost_alias.so

然后转到<Directory />

并更改为:

 <Directory /> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> 

然后重新启动本地服务器。

我想你想把它设置在你的httpd.conf文件中而不是.htaccess文件中。

我不知道你使用的是什么操作系统,但是这个Ubuntu的链接可能会给你一些关于如何做的指示。

https://help.ubuntu.com/community/EnablingUseOfApacheHtaccessFiles

正如其他用户在这里解释了allowoveride指令的用法,该指令用于授予.htaccess使用权限。 有一件事我想指出,如果其他用户有权访问写入.htaccess,而不是使用allowoverride,则允许使用某些模块。

AllowOverride AuthConfig mod_rewrite而不是

 AllowOverride All 

因为像mod_mime这样的模块可以将你的服务器端文件呈现为纯文本。

我也遇到了这个问题,我发现解决scheme为2步骤如下:1.在apache2的启用站点的文件夹中,通过设置“AllowOverride all”(应该是“all”而不是none)来编辑Directory元素。在www文件夹中的kohana项目中,将“example.htaccess”重命名为“.htaccess”

我在Ubuntu上做到了。 希望它能帮助你。

SuSE Linux Enterprise Server

确保您正在编辑正确的文件https://www.suse.com/documentation/sles11/book_sle_admin/data/sec_apache2_configuration.html

httpd.conf文件

主要的Apache服务器configuration文件。 避免改变这个文件。 它主要包含包含语句和全局设置。 覆盖此处列出的相关configuration文件中的全局设置。 在虚拟主机configuration中更改主机特定的设置(如文档根目录)。

在这种情况下,必须编辑vhosts.d/*.conf