我在新服务器上使用 .htaccess 时遇到了一些非常令人沮丧的问题。我管理服务器的经验并不丰富,但我花了三天时间仔细阅读文档和我能找到的所有资源。
我尝试过 .htaccess 的一个非常基本的应用,但它却无法给出预期的结果。我设置了一个测试目录。此目录中有一个 .htaccess 文件,其中包含以下命令:
全部否认
如果我没记错的话,这应该会拒绝访问 /test,但事实并非如此。它只是放在那里,允许任何人查看内容。我在同一目录中制作了一份可读的 .htaccess 副本,供任何想要查看的人查看确切地我的.htaccess 中发生了什么。
我的服务器/配置可能出了什么问题?服务器正在运行 CentOS。
响应唐
# 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
根据建议,我将其更改为AllowOverride All
,然后重新启动了服务器:
service httpd restart
但收到如下信息:
/etc/httpd/conf/httpd.conf 第 347 行语法错误:
此处不允许 AllowOverride [FAILED]
第 347 行是下面的最后一行:
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received.
#
# The path to the end user account 'public_html' directory must be
# accessible to the webserver userid. This usually means that
# ~useridllowOverride 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
答案1
您的 Virtualhost 配置中是否有AllowOverride All
? 如果有AllowOverride None
,则不会读取 .htaccess 文件,因此不会使用它。对,
全部否认
单独禁止与文件夹的连接。并且不要忘记重新加载 apache