如何设置AllowOverride all

Mun*_*nib 144 apache .htaccess

我想设置AllowOverride all但我不知道该怎么做.我通过搜索谷歌找到了以下代码并将其粘贴在.htaccess中

<Directory>
        AllowOverride All
</Directory>
Run Code Online (Sandbox Code Playgroud)

但在粘贴之后我开始收到了 .htaccess

可以任何人指导我在哪里放置此代码或如何做到这一点?

小智 291

In case you are on Ubuntu, edit the file /etc/apache2/apache2.conf (here we have an example of /var/www):

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)

and change it to;

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)

then,

sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

You may need to also do sudo a2enmod rewrite to enable module rewrite.

  • 我还需要使用```sudo a2enmod rewrite```,然后就可以了.在Ubuntu 14.04 LTS上.希望它对某些人有用. (53认同)
  • 奇怪...当我这样做时,我收到内部服务器错误。这是否表明位于/var/www/.htaccess的.htaccess文件中存在错误?将apache2,conf改回AllowOverride None可以修复该错误,但不允许URL重写。 (2认同)

reg*_*ero 45

主要目标AllowOverride是为apache的主要配置文件管理器(主要在/ etc/apache2 /中找到)确定应用程序可以基于每个路径动态更改配置的哪个部分.

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

如果您是主apache配置管理器,则应始终使用AllowOverride None并将基于.htaccess文件的所有google_based示例传输到Directory主配置文件的各个部分.由于.htaccess文件的.htaccess内容/my/path/to/a/directory<Directory /my/path/to/a/directory>指令相同,除了.htaccess动态的每HTTP请求配置更改会降低Web服务器的速度.总是更喜欢没有.htaccess检查的静态配置(并且您还将通过.htaccess更改避免安全攻击).

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


小智 17

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

找到这一行:

#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>
Run Code Online (Sandbox Code Playgroud)

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

  • NB"订单允许,拒绝"和"允许所有"是针对Apache**2.2**及更早版本.在Apache 2.4中,这两行被替换为**`Require all granted`**,如其他答案所示. (5认同)

小智 13

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

/etc/httpd/conf/httpd.conf
Run Code Online (Sandbox Code Playgroud)

根据您希望放宽访问权限的目录级别,您必须更改指令

AllowOverride None
Run Code Online (Sandbox Code Playgroud)

AllowOverride All
Run Code Online (Sandbox Code Playgroud)

因此,假设您要允许访问/ var/www/html目录中的文件,您应该更改以下行:

<Directory "/var/www/html">
 AllowOverride None
</Directory>
Run Code Online (Sandbox Code Playgroud)

<Directory "/var/www/html">
 AllowOverride All
</Directory>
Run Code Online (Sandbox Code Playgroud)

  • 然后重新启动服务器 (7认同)

Bij*_* Bk 10

在此输入代码如果您使用的是 Linux,则必须编辑

`/etc/apache2/sites-available/000-default.conf`
Run Code Online (Sandbox Code Playgroud)

在 Documentroot 下。添加以下代码

`<Directory /var/www/>
  AllowOverride all
  Require all granted
</Directory>` 
Run Code Online (Sandbox Code Playgroud)

然后 ,

`sudo service apache2 restart`
Run Code Online (Sandbox Code Playgroud)

并且你必须启用 apache mod 重写

`sudo a2enmod rewrite`
Run Code Online (Sandbox Code Playgroud)


SAR*_*SAR 8

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

/etc/httpd/conf/httpd.conf
Run Code Online (Sandbox Code Playgroud)

现在这里的代码行有点像

# 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>
Run Code Online (Sandbox Code Playgroud)

AllowOveride None 更改为AllowOveride All

现在,您可以在目录中的.httacess文件中设置任何类型的规则,如果任何其他操作系统只是尝试查找httpd.conf文件并进行编辑.


Qbe*_*ben 5

我认为您想在httpd.conf文件而不是.htaccess文件中设置它。

我不确定您使用的是什么操作系统,但是Ubuntu的此链接可能会为您提供一些指示。

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


Abh*_*jar 5

正如其他用户在此解释的有关allowoveride指令的用法,该指令用于授予.htaccess使用权限.有一件事我想指出,如果其他用户有权写入.htaccess而不使用allowoveride来允许某些模块,那么永远不要使用allowoverride all.

比如AllowOverride AuthConfig mod_rewrite代替

AllowOverride All
Run Code Online (Sandbox Code Playgroud)

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