wake-up-neo.com

.htaccess funktioniert nicht unter Linux (Debian) Apache2

Ich verwende Apache2 (meinen Dummy-Server), der bereits mit meinem Debian installiert ist. Alles geht gut, aber jetzt das Problem mit meinem .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

Es funktioniert nicht
Ich denke, es liegt an Apache2 Version, die ich verwende und möglicherweise Probleme mit meinem Code oder etwas, das ich auf meinem Server config haben muss

Ich möchte umleiten meine URL zur Hauptindexseite, wenn ein falscher Eintrag oder nicht verfügbar

6
VIKASH DASH

Nach einem ganzen Tag bekam ich meine Antwort

Im Ordner
Apache2 >> sites-available >> Es gibt eine Datei mit dem Namen default

In der Standardeinstellung müssen wir es ändern

Von:

<Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

ZU:

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

Es funktioniert. Die Verwendung von .htaccess-Dateien ist aktiviert.

28
VIKASH DASH

Ich möchte hinzufügen, dass /etc/Apache2/mods-available/rewrite.load aktiviert sein muss:

a2enmod rewrite

Unter Debian dachte ich, dass es standardmäßig aktiviert ist, bei mir jedoch nicht.

10
TFotH

Es ist wichtig zu beachten, dass AllowOverride nur in <Directory>-Direktiven funktioniert und ignoriert wird, wenn es im Abschnitt <Location ...> platziert wird. Das war mein Problem und ich brauchte eine schöne Fahrt.

Nur in Abschnitten verfügbar AllowOverrideList ist nur in Abschnitten gültig, die ohne reguläre Ausdrücke angegeben wurden, nicht in oder Abschnitten.

https://httpd.Apache.org/docs/2.4/mod/core.html#allowoverride

1

Dieser Code:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ /index.php?url=$1 [QSA,R]

leitet http://example.com/test.php zu http://example.com/index.php?url=test.php um, wenn die Datei nicht existiert. Der einzige Unterschied zwischen meinem Code hier und deinem ist, dass ich [R] anstelle von [QSA, L] habe. Wenn es bei Ihnen immer noch nicht funktioniert und Sie die htaccess-Datei im Stammordner haben, glaube ich nicht, dass dies der Fall ist ein Htaccess-Datei-Problem

1
Howli