在Amazon Linux上启用mod_rewrite

我试图在Amazon Linux实例上启用mod_rewrite。 我的目录指令如下所示:

<Directory /> Order deny,allow Allow from all Options None AllowOverride None </Directory> <Directory "/var/www/vhosts"> Order allow,deny Allow from all Options None AllowOverride All </Directory> 

然后进一步在httpd.conf我有LoadModule指令:

 ... other modules... #LoadModule substitute_module modules/mod_substitute.so LoadModule rewrite_module modules/mod_rewrite.so #LoadModule proxy_module modules/mod_proxy.so ... other modules... 

我已经注释掉了Wordpress所不需要的所有Apache模块。

仍然当我发出HTTP重新启动,然后用/usr/sbin/httpd -l检查加载的模块时,我只能得到:

 [root@foobar]# /usr/sbin/httpd -l Compiled in modules: core.c prefork.c http_core.c mod_so.c 

在包含Wordpress网站的虚拟主机中,我有一个.htaccess包含:

 # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress 

.htaccess由apache拥有,它是apache运行的用户。 apachectl -t命令返回Syntax OK

我的/etc/httpd/conf.d/vhosts.conf如下所示:

 <VirtualHost *:80> ServerAdmin [email protected] ServerName foobar.net ServerAlias www.foobar.net DocumentRoot /var/www/vhosts/foobar/ ErrorLog /var/www/vhosts/foobar/logs/error.log CustomLog /var/www/vhosts/foobar/logs/access.log combined </VirtualHost> 

我究竟做错了什么? 我应该检查什么?

LoadModule指令将dynamic加载模块。

尝试在虚拟主机RewriteEngine on发布RewriteEngine on然后使用apachectl -t来确认天气是否实际加载。

我的configuration是正确的,但我需要

 Options FollowSymLink 

在我的DocumentRoot的声明中,在httpd.conf中为mod_rewrite起作用。

我刚刚开始了一个新鲜的亚马逊Linux,并有相同的问题和Options FollowSymLink在那里,但下一行AllowOverride None必须改为AllowOverride All