Tôi đang cố gắng kích hoạt mod_rewrite trên phiên bản Amazon Linux. Chỉ thị thư mục của tôi trông như thế này:
<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>
Và sau đó tiếp tục xuống trong httpd.conf tôi có LoadModule
chỉ thị:
... 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...
Tôi đã nhận xét tất cả các mô-đun Apache mà Wordpress không cần.
Tuy nhiên, khi tôi phát hành http restart và sau đó kiểm tra các mô-đun đã tải với /usr/sbin/httpd -l
tôi chỉ nhận được:
[root@foobar]# /usr/sbin/httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
Bên trong máy chủ ảo chứa trang Wordpress tôi có .htaccess
chứa:
# 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 được sở hữu bởi apache, đó là apache người dùng chạy bên dưới. Các apachectl -t
lệnh trả vềSyntax OK
Tôi /etc/httpd/conf.d/vhosts.conf
trông như thế này:
<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>
Tôi đang làm gì sai? Tôi nên kiểm tra cái gì?