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.
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)
然后重新启动本地服务器.
小智 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)
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)
如果您使用的是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文件并进行编辑.
我认为您想在httpd.conf文件而不是.htaccess文件中设置它。
我不确定您使用的是什么操作系统,但是Ubuntu的此链接可能会为您提供一些指示。
https://help.ubuntu.com/community/EnablingUseOfApacheHtaccessFiles
正如其他用户在此解释的有关allowoveride指令的用法,该指令用于授予.htaccess使用权限.有一件事我想指出,如果其他用户有权写入.htaccess而不使用allowoveride来允许某些模块,那么永远不要使用allowoverride all.
比如AllowOverride AuthConfig mod_rewrite代替
AllowOverride All
Run Code Online (Sandbox Code Playgroud)
因为像mod_mime这样的模块可以将服务器端文件呈现为纯文本.
| 归档时间: |
|
| 查看次数: |
469961 次 |
| 最近记录: |