【发布时间】:2021-04-01 16:17:47
【问题描述】:
我正在通过 MAMP 在我的计算机上运行 Apache 服务器,但我似乎无法让它读取我的 .htaccess 文件。我看过的所有解决方案都说要确保我的AllowOverride 在httpd.conf 中设置为All,但这似乎并不能解决我的问题。我知道.htaccess 没有被读取,因为我在文件开头写了一些废话并且没有产生错误。在更改httpd.conf 后,我还重新启动了 Apache 服务器。也许问题是我不完全确定应该将.htaccess 文件放在哪里。
我的 MAMP 文档根目录以前是 MAMP > htdocs,但我将其更改为 Library > WebServer > Documents,这是我所有 PHP 文件所在的位置。我正在处理的当前项目是它的一个子目录,比如Library > WebServer > Documents > project。这是包含我的.htaccess 文件的文件夹。我的httpd.conf文件在MAMP > conf > apache,相关部分如下:
# First, we configure the "default" to be a very restrictive set of
# features.
#
<Directory />
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
我是否需要将目录从 / 更改为其他内容才能正常工作?非常感谢任何帮助。
编辑:我在下面的 cmets 之后将以下 <VirtualHost> 块添加到了我的 httpd.conf,但同样,似乎没有任何变化:
<VirtualHost *:80>
ServerAdmin email@site.com
ServerName localhost:8890
DocumentRoot /
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
更新(已解决):我能够通过将 MAMP 的 DocumentRoot 恢复为原来的 MAMP > htdocs 而不是我的 Library > WebServer > Documents 来解决问题。 Apache 现在正在读取位于我的MAMP > htdocs > project 中的.htaccess 文件。感谢大家的帮助。
【问题讨论】:
-
这可能相关也可能不相关,但是您知道
.htaccess文件的编码吗?根据我的经验,Apache 不喜欢 UTF-8 编码的.htaccess。因此,仅对于这些文件,我使用 Windows 1252。 -
感谢您的回复,其实我对它的编码一无所知。如何检查并更改为正确的?
-
在 Sublime Text 中,有一个选项:Save with Encoding。您可以选择任何您想要的,然后文件将使用该编码保存。我猜其他文本编辑器也会有类似的选项。
-
哦,我明白了,您建议我切换到哪种编码?我有一个以一些 UTF 开头的列表,然后是对应于不同语言的编码。我没有在我的列表中看到 Windows 1252。
-
我明白了,不幸的是它似乎没有改变任何东西,但无论如何都感谢您的帮助。