
Ich versuche, mod_rewrite auf einer Amazon Linux-Instanz zu aktivieren. Meine Verzeichnisanweisungen sehen folgendermaßen aus:
<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>
Und dann habe ich weiter unten in httpd.conf die LoadModule
Anweisung:
... 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...
Ich habe alle Apache-Module auskommentiert, die Wordpress nicht benötigt.
Wenn ich immer noch einen HTTP-Neustart ausführe und dann die geladenen Module überprüfe, /usr/sbin/httpd -l
erhalte ich nur:
[root@foobar]# /usr/sbin/httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
Innerhalb des virtuellen Hosts, der die Wordpress-Site enthält, habe ich Folgendes .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
Die .htaccess gehört Apache, dem Benutzer, unter dem Apache läuft. Der apachectl -t
Befehl gibt zurückSyntax OK
Meines /etc/httpd/conf.d/vhosts.conf
sieht so aus:
<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>
Was mache ich falsch? Was sollte ich überprüfen?
Antwort1
Die LoadModule-Direktive lädt ein Modul dynamisch.
RewriteEngine on
Versuchen Sie , einen virtuellen Host einzugeben, gefolgt von apachectl -t
, um zu bestätigen, ob das Modul tatsächlich geladen ist oder nicht.
Antwort2
Ich habe gerade ein neues Amazon Linux gestartet und hatte das gleiche Problem und die Options FollowSymLink
waren da, aber die nächste Zeile AllowOverride None
musste geändert werden inAllowOverride All
Antwort3
Meine Konfiguration war korrekt, aber ich brauchte
Options FollowSymLink
in der Deklaration meines DocumentRoots in httpd.conf, damit mod_rewrite funktioniert.
Antwort4
Ich habe die Lösung für dieses Problem.....
Ich habe in der Konfigurationsdatei AllowOverride None
Folgendes geändert AllowOverride all
:
Options Indexes FollowSymLinks
/etc/httpd/conf/httpd.conf
Danke!