Apache-2.2
在 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 restart 然後檢查載入的模組時,
/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 foobar@gmail.com 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 指令將動態載入模組。
嘗試
RewriteEngine on
在虛擬主機中發出,然後apachectl -t
確認天氣是否實際載入了模組。
我剛開始一個新的 amazon linux 並且遇到了同樣的問題並且在
Options FollowSymLink
那裡但是下一行AllowOverride None
必須更改為AllowOverride All