bre*_*ine 5 apache mod-rewrite symlink apache2 httpd.conf
我正在 OSX 上使用内置的 Apache2。我将文档根目录移动到桌面上的一个文件夹中,并确保它_www具有everyone读取权限。它工作得很好,很棒,PHP 工作,一切工作正常,直到我.htaccess仅添加以下行:
RewriteEngine on
Run Code Online (Sandbox Code Playgroud)
一旦我这样做,包含该文件的目录中的所有内容都是 403 Forbidden:
Forbidden
You don't have permission to access /dir/file.txt on this server.
Run Code Online (Sandbox Code Playgroud)
Apache 日志显示此错误:
[错误] [客户端 127.0.0.1] 选项FollowSymLinks或SymLinksIfOwnerMatch已关闭,这意味着禁止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>
Run Code Online (Sandbox Code Playgroud)
RewriteEngine on如果我在文件中注释掉.htaccess,那么显然除了重写规则之外,一切都正常。在 OSX 10.8.5 上,httpd.conf位于其中还包含包含供使用的各个文件的/etc/apache2文件夹,例如,但我在这里添加了与其他相同的符号链接。我注意到还有一个包含类似文件的文件夹,但它们似乎没有禁用任何内容。usersuname.confextrahttpd-userdir.conf
还有什么地方可以打开(或关闭)FollowSymLinks?
您必须将选项放在一行上,或者+在选项前面添加一个符号,以便 Apache 知道您想要合并它们。目前,仅应用最后一个选项指令(“选项索引多视图”),因为它会覆盖所有先前的选项。
试试这个(这将覆盖“/”选项):
<Directory "/Users/uname/Desktop/localhost">
Options Indexes MultiViews FollowSymLinks SymLinksIfOwnerMatch
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3260 次 |
| 最近记录: |