我的.htaccess中有这个:
选项+ FollowSymLinks
我在apache error_log中收到以下错误:
.htaccess: Options not allowed here
这是我的httpd.conf文件中的部分:
#htdocs symlinks here
<Directory /Users/you/code/my/folder>
Options All
AllowOverride All
</Directory>
<Directory />
Options All
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory "/Applications/XAMPP/xamppfiles/htdocs">
Options All
AllowOverride All
Order allow,deny
Allow from all
</Directory>
所以我在所有地方都设置了Options All和AllowOverride All,但是我仍然不允许设置选项。任何人都可以理解这个吗?
谢谢, MRB
答案 0 :(得分:24)
请注意,这是特定于XAMPP的问题。 XAMPP加载一些位于XAMPP/etc/extra/
中的覆盖httpd.conf的其他配置文件。对我来说,有问题的文件是http-userdir.conf
,它为〜用户请求应用规则并包含行AllowOverride FileInfo AuthConfig Limit Indexes
,并将该行更改为AllowOverride All
确实解决了我的问题。
这仅适用于从OS X上的/ Sites /目录提供的文件。我不知道Windows版本是否完全使用UserDir,或者甚至有类似的规则。
答案 1 :(得分:4)
在我的情况下,我最终将文件httpd-vhosts.conf中的行AllowOverride AuthConfig FileInfo
更改为AllowOverride All
,此文件位于apache \ conf \ extra文件夹中
答案 2 :(得分:3)
您必须允许覆盖目录上下文中的“选项”。没有必要:
vhost/directory config:
AllowOverride All
但只允许覆盖“选项”:
AllowOverride {Existing options to override} +Options
答案 3 :(得分:1)
我猜你的apache配置中有一个全局AllowOverride
设置,不允许这样做。你能在httpd.conf中找到AllowOverride吗?
答案 4 :(得分:1)
我刚刚安装了最新版本的XAMPP,并想分享我是如何解决同样的问题的。
这是XAMPP特定设置(每次安装新的XAMPP)。截至目前最新的XAMPP - XAMPP 1.8.3 在/xampp/apache/conf/extra/httpd-xampp.conf中设置了导致“服务器错误”消息的设置。 / p>
然后在错误日志中出现以下错误:
.htaccess: Options not allowed here
打开/xampp/apache/conf/extra/httpd-xampp.conf并找到:
<Directory "/xampp/htdocs/xampp">
<IfModule php5_module>
<Files "status.php">
php_admin_flag safe_mode off
</Files>
</IfModule>
AllowOverride AuthConfig
</Directory>
并更改
AllowOverride AuthConfig
<强>与强>
AllowOverride All
更改后不需要身份验证或授权,除非您在httpd.conf,extra confs或.htaccess中指定它。
您可能还想阅读选项AllowOverride http://httpd.apache.org/docs/current/en/mod/core.html#allowoverride的Apache文档,并选择更优化和安全的设置,以便您使用.htaccess而不会导致服务器错误。
另请注意,根据您希望实现的结果,您可以找到更好的地方重写上述规则。在我看来,这是一个令人满意的变化。
答案 5 :(得分:0)
您的域托管服务器是否满足Elgg所需的所有要求?特别是,mod_rewrite可用吗?
重新检查您已完成的所有步骤。
如果mod_rewrite正在运行...您是否可以访问服务器上Apache的配置(http.conf)?如果是,请添加以下行(调整路径):
AllowOverride All
答案 6 :(得分:0)
而不是更改主httpd.conf文件中的全局AllowOverride设置,如果你有一个httpd-vhosts.conf文件,你可能希望在你需要的每个主机条目中放置特定于目录的AllowOverride All指令,所以你可以在服务器领域的其余部分保留限制性设置。
答案 7 :(得分:0)
在.htaccess文件的所有实例中将Options +FollowSymLinks
更改为Options +SymLinksIfOwnerMatch
,由于安全风险,许多服务器上的followymlinks已被禁用。
答案 8 :(得分:0)
在Debian 9上,我编辑了文件/etc/apache2/mods-available/userdir.conf
禁用此行 AllowOverride FileInfo AuthConfig限制索引
添加了这一行 全部允许覆盖
效果很好。
非常感谢所有贡献的人