Verwendung von mod_rewrite in Apache 2.4


7

Okay, es gibt viele Threads zur Verwendung von mod_rewrite, aber ich finde, dass es in Apache 2.4 etwas anders zu funktionieren scheint. Ich habe es versucht:

<Directory /var/www/vhosts/example.com>
<IfModule mod_rewrite>
RewriteEngine On
RewriteBase /var/www/vhosts/example.com
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
</IfModule>
</Directory>

Dies befindet sich in /etc/apache2/conf-available/httpd.conf/, und ich habe runt, sudo a2enconf httpd.confwas funktioniert und aktiviert hat, aber es will sowieso nicht funktionieren ..

Ich habe es ohne das Directorybisschen versucht, ich habe versucht, es zu nennen, mod_rewrite.cwas WordPress vorschlägt, aber keines der oben genannten scheint zu funktionieren. Ich habe es auch mit dem DirectoryTag versucht, aber ohne IfModule, was aus offensichtlichen Gründen dazu führte, dass Apache nicht gestartet wurde. Und ja, ich starte Apache zwischen jedem Versuch neu.

Gibt es in Apache 2.4 einen neuen Trick, von dem ich nicht weiß, ob? Jede Hilfe geschätzt.


Hast du mod_rewriteinstalliert? a2enmod rewrite.
OrangeTux

Nee. Das Modul mod_rewrite existiert nicht. Wie löse ich das dann?
Tjita1

Ja, das habe ich gerade gefunden, danke. Wie soll ich dann die httpd.conf schreiben, damit sie funktioniert?
Tjita1

Okay, ein Freund von mir, der ziemlich gut darin ist, sagt mir, dass es nicht funktionieren wird, wenn ich es in die httpd.conf stecke. Es muss sich in einem .htaccess befinden, um zu funktionieren. Das Problem ist, ich habe das Modul zum Laufen gebracht, es aus der httpd.conf entfernt und einen .htaccess erstellt, aber es funktioniert sowieso nicht. Was jetzt?
Tjita1

Was ist die Ausgabe vonls /etc/apache2/sites-enabled
Dan

Antworten:


11

Nach dem Aktivieren von mod_rewrite durch diesen Befehl:

sudo a2enmod rewrite

Erstellen Sie eine Datei für Ihre httpd-Konfiguration in / etc / apache2 / sites-available /. In meinem Ubuntu ist die Datei, die ich erstelle, /etc/apache2/sites-available/code-machine.conf :

DocumentRoot /var/www
<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Bearbeiten : Und wie von Chris Gregory und firepol erinnert, können Sie registrieren die neue Konfigurationsdatei Code-machine.conf :

sudo a2ensite code-machine.conf

Starten Sie dann Ihren Apache neu :

sudo service apache2 restart

Wie Chris Gregory erinnerte, registrieren Sie die neue Konfigurationsdatei, in diesem Fall die code-machine.conf (ich habe sie anders genannt, passen Sie sie an Ihre conf-Datei an): sudo a2ensite code-machine.conf Dann: sudo service apache2
restart

2

Sogar ich hatte am 14.04 ein ähnliches Problem mit Apache 2.4

Bitte beachten Sie, dass sich die Konfigurationsdatei jetzt unter befindet /etc/apache2/apache2.conf.

Ich habe es versucht und es hat für mich geklappt.

sudo nano /etc/apache2/apache2.conf

Suchen Sie das Direktivenverzeichnis, in dem sich Ihr Stammverzeichnis befindet, und legen Sie Folgendes fest:

Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All

2

Ich hatte die neue conf-Datei bei Apache registriert, bevor sie funktionieren würde.

sudo a2ensite MyConfiguration.conf

Dann könnte ich rennen

sudo service apache2 restart
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.