打开RewriteEngine创build403错误 – 如何打开FollowSymLinks?

我正在使用OSX上的内置Apache2。 我将文档根目录移动到桌面上的文件夹,并确保_wwweveryone具有读取权限。 它工作正常,很好,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]选项FollowSymLinksSymLinksIfOwnerMatch已closures,这意味着RewriteRule指令被禁止:/Users/uname/Desktop/localhost/dir/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> 

如果我在.htaccess文件中注释掉RewriteEngine on ,那么一切正常,除了重写规则,显然。 在OSX 10.8.5上, httpd.conf位于/etc/apache2文件夹中,该文件夹还包含users单独使用的文件夹,例如uname.conf ,但是我在这里添加了符号链接。 我注意到还有一个extra的文件夹,如httpd-userdir.conf ,但他们似乎并没有禁用任何东西。

FollowSymLinks还可以在哪里开启(或closures)?

你必须把你的选项放在一行上,或者在你的选项前面加一个+号,这样Apache就能理解你想合并它们。 目前只有最后一个Options指令('Options Indexes MultiViews')正在被应用,因为它覆盖了所有以前的选项。

试试这个(它会覆盖“/”选项):

 <Directory "/Users/uname/Desktop/localhost"> Options Indexes MultiViews FollowSymLinks SymLinksIfOwnerMatch AllowOverride All Order allow,deny Allow from all </Directory>