我正在使用OSX上的内置Apache2。我将文档根目录移动到桌面上的文件夹中,并确保_www
和everyone
具有读取权限。它运行良好,非常好,PHP可以工作,一切正常,直到我只用这行添加.htaccess
:
RewriteEngine on
一旦我这样做,文件目录中的所有内容都是403 Forbidden:
Forbidden
You don't have permission to access /dir/file.txt on this server.
Apache日志显示此错误:
[error] [client 127.0.0.1]选项 FollowSymLinks 或 SymLinksIfOwnerMatch 已关闭,这意味着 RewriteRule 指令被禁止:/ Users / UNAME /桌面/本地主机/目录/ FILENAME.TXT
我已完成httpd.conf
并确保我已启用FollowSymLinks
无效:
DocumentRoot "/Users/uname/Desktop/localhost"
<Directory />
Options FollowSymLinks
Options SymLinksIfOwnerMatch
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory "/Users/uname/Desktop/localhost">
Options FollowSymLinks
Options SymLinksIfOwnerMatch
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
如果我在RewriteEngine on
文件中注释.htaccess
,那么一切正常,除了重写规则,显然。在OSX 10.8.5上,httpd.conf
位于/etc/apache2
,其中还包含文件夹users
,其中包含供个人使用的文件,例如uname.conf
,但我在这里添加了符号链接,与其他符号链接相同。我注意到还有一个文件夹extra
包含httpd-userdir.conf
等文件,但它们似乎没有禁用任何内容。
其他地方可以打开(或关闭)FollowSymLinks吗?
答案 0 :(得分:4)
您必须将选项放在一行,或在选项前添加+
符号,以便Apache知道您要合并它们。目前只应用最后一个Options指令('Options Indexes MultiViews'),因为它覆盖了所有先前的选项。
尝试此操作(将覆盖'/'选项):
<Directory "/Users/uname/Desktop/localhost">
Options Indexes MultiViews FollowSymLinks SymLinksIfOwnerMatch
AllowOverride All
Order allow,deny
Allow from all
</Directory>
答案 1 :(得分:0)
我在获取403时遇到问题,我的解决方案是更改我的重写规则。我的完整指令如下:
element.all(by.css(".image-holder")).click();