.htaccess-Datei läuft nicht und interner Serverfehler

3968
Farman Ali

Ich verwende Ubuntu 14.04 und habe eine LAMP-Umgebung. Ich habe eines der Projekte in dir / var / www / html / project1 . Es kann nicht auf die .htaccess- Datei zum Umschreiben von URL-Regeln zugreifen .

Dafür muss ich die Datei /etc/apache2/apache2.conf ändern

 <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All # change None to All Order allow,deny allow from all Require all granted </Directory> 

Nach dieser Änderung gibt mein Apache-Server jedoch den Fehler "Interner Serverfehler" aus und der Apache-Fehler gibt für jede Website (Projekt) einen Fehler aus.

Und wenn ich 'AllowOverride None' ändere, wird die Site korrekt ausgeführt. Die .htaccess-Datei funktioniert jedoch nicht.

Der 'Internal Server Error' ist auf die .htaccess-Datei in einem anderen Projekt zurückzuführen, das so aussieht

Options +FollowSymLinks RewriteEngine On RewriteCond % base64_encode[^(]*\([^)]*\) [OR] RewriteCond % (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR] RewriteCond % GLOBALS(=|\[|\%[0-9A-Z]) [OR] RewriteCond % _REQUEST(=|\[|\%[0-9A-Z]) RewriteRule .* index.php [F] RewriteRule .* - [E=HTTP_AUTHORIZATION:%] RewriteCond % !^/index\.php RewriteCond % !-f RewriteCond % !-d RewriteRule .* index.php [L]  

Ich kann nichts in der Htaccess-Datei verstehen. Bitte helfen Sie mir dabei, die Datei htaccess und deren Bedeutung neu zu schreiben.

Vielen Dank

0

1 Antwort auf die Frage

2
Jacob Margason

Anstatt die Direktive im Standardblock zu ändern, sollten Sie einen separaten Block speziell für Ihr Projektverzeichnis verwenden:

<Directory /var/www/html/project1> Options Indexes FollowSymLinks AllowOverride All Order allow,deny allow from all Require all granted </Directory> 

Dies ermöglicht nur die Verwendung von .htaccess-Dateien in diesem bestimmten Verzeichnis.

Der 500-Fehler, den Sie erhalten, ist möglicherweise auf eine fehlerhafte Syntax in einer .htaccess-Datei zurückzuführen. Es wäre hilfreich, wenn Sie uns zeigen würden, was Sie in allen .htaccess-Dateien haben.

Alternativ können Sie in den Apache-Fehlerprotokollen unter /var/log/apache2/error.log nach genaueren Informationen zum Fehler suchen.

Danke, es löst mein Problem. Aber ich vermute, dass eine meiner Htaccess-Dateien einen internen Serverfehler verursacht Farman Ali vor 8 Jahren 0