我有一台在 Ubuntu 12.04.4 LTS 上运行最新 2.2 版本的 Apache 服务器。我没有更改大部分配置。启动时一切正常,但现在它没有注意到其配置有任何变化。
例如,这是一个.htaccess
文件。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule myfile [F]
Header set X-Asdf rewrite_found
</IfModule>
这根本没有任何效果(尽管我确实有mod_rewrite
),中的任何其他东西也没有效果.htaccess
。
另外,我将其添加到httpd.conf
:
ServerSignature Off
ServerTokens Prod
完全没有效果。
我已经尝试过这些事情,但没有任何效果:
service apache2 reload
service apache2 restart
- 重启机器
添加到
httpd.conf
:<Directory *> AllowOverride All </Directory>
Apache 仍在读取配置,因为在那里出现的任何语法错误都会在重新加载时报告错误。
这可能是什么原因造成的?
编辑:
root@my-server:~# apachectl -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server 127.0.0.1 (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost 127.0.0.1 (/etc/apache2/sites-enabled/000-default:1)
Syntax OK
答案1
我自己发布这个答案是肖恩·马登,评论中没有告诉我这一点。
解决方法是将 改为 ,/etc/apache2/sites-enabled/000-default
而不是httpd.conf
,因为前者是在后者之后读取的,因此那里的指令会被覆盖。