Frage Mod_rewrite auf Amazon Linux aktivieren


Ich versuche, mod_rewrite auf einer Amazon Linux-Instanz zu aktivieren. Meine Verzeichnis-Anweisungen sehen so 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 weiter unten in der httpd.conf habe ich die LoadModule Richtlinie:

... 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.

Immer noch wenn ich http neustart ausstelle und dann die geladenen Module mit überprüfe /usr/sbin/httpd -l Ich bekomme 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 einen .htaccess enthält:

# 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

Der .htaccess gehört Apache, unter dem der Apache des Benutzers läuft. Das apachectl -t Befehl kehrt zurück Syntax OK

Meine /etc/httpd/conf.d/vhosts.conf sieht aus wie das:

<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>

Was mache ich falsch? Was soll ich überprüfen?


8
2017-11-05 16:20


Ursprung




Antworten:


Die LoadModule-Direktive lädt ein Modul dynamisch.

Versuche es auszugeben RewriteEngine on in einem virtuellen Host gefolgt von apachectl -t um das Wetter zu bestätigen oder nicht, ist das Modul tatsächlich geladen.


5
2017-11-05 16:24



Hallo James, danke für die Antwort Ich habe mehr Details zu der Frage hinzugefügt, was du gesagt hast. RewriteEngine ist aktiviert und apachectl -t gibt Syntax OK zurück, funktioniert aber immer noch nicht. - Lorenzo
Entschuldigung, ich habe meinen letzten Kommentar gelöscht, es war falsch. Du hast das aus der Wordpress .htaccess-Datei übernommen, nicht wahr? Haben Sie AllowOverride in Ihrer VHost-Konfiguration aktiviert? - James Park-Watt
Hallo James, ja ich habe es von WP genommen. Ja, das AllowOverride in den Unterverzeichnissen von DocumentRoot ist auf Alle eingestellt - Lorenzo
Bitte versuchen Sie Folgendes: In der Serverkonfiguration - nicht .htaccess fügen Sie die Zeilen hinzu RewriteEngine On und RewriteRule ^.*$ http://www.wordpress.org/ [R] um zu bestätigen, ob das Überschreiben überhaupt funktioniert. Es sollte den gesamten Verkehr an die Wordpress-Website übergeben. - James Park-Watt
Ich löschte den .htaccess von WP und tat die Änderungen, die Sie vorschlugen, aber es funktioniert nicht. - Lorenzo


Meine Konfiguration war korrekt, aber ich brauchte

Options FollowSymLink

in meiner DocumentRoot-Erklärung in httpd.conf für mod_rewrite zu arbeiten.


3
2017-11-05 20:55





Ich habe gerade eine frische Amazon Linux gestartet und hatte das gleiche Problem und die Options FollowSymLink War da aber die nächste Zeile AllowOverride None musste geändert werden AllowOverride All


3
2018-03-28 17:09





Ich habe die Lösung für dieses Problem .....

ich habe mich verändert AllowOverride None zu AllowOverride all, unten Options Indexes FollowSymLinks in der Konfigurationsdatei /etc/httpd/conf/httpd.conf

Vielen Dank!


0
2017-08-14 06:55