2017-02-23 3 views
0

Ich weiß nicht warum, aber meine einfache .htaccess Datei funktioniert nicht auf meinem Server..htacces Dateien funktioniert nicht trotz AllowOverride Alle

/var/www/html/.htaccess

RewriteEngine On 
#RewriteCond %{HTTP_HOST} ^/$ [R=301,L] 
#RewriteRule ^(.*)$ htt://www.onet.pl/$1 [L] 
RewriteRule ^/lol$ /dev/public 

Ich habe versucht, mit entweder Umleitung des gesamten Verkehrs, einen Test zu machen auf einen anderen Server oder einfache Umleitung meineadresse/lol zu myadress/dev/public wo Ich habe index.html Datei.

Modul REWRITE aktiviert ist bereits

#a2enmod rewrite 
Module rewrite already enabled 

Und das ist mein /etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:80> 
ServerAdmin [email protected] 
DocumentRoot /var/www/html 
<Directory /var/www/html> 
AllowOverride All 
</Directory> 
ErrorLog ${APACHE_LOG_DIR}/error.log 
CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

Wenn ich Müll in/var/www schreiben /html/.htaccess und öffnet die Hauptadresse des Servers, dann wird eine Fehlermeldung ausgegeben und in den Apache-Logs wird ein Fehler über den falschen Befehl in der .htaccess-Datei angezeigt.

Keine der in .htaccess platzierten Umleitungen funktioniert. Die zweite Umleitung leitet nicht von Adresse/lol zu Adresse/dev/public - Browser führt nur aus, dass es keine/dev Seite gibt.

Ich habe Root-Zugriff, Server ist Debian 8 mit Apache 2.4.10. Was kann ich tun?

Antwort

0

Das einfache Problem, dass Sie versuchen, einen absoluten Pfad mit einer Rewrite-Regel in einer dynamischen Konfigurationsdatei zu verwenden. Es ist klar dokumentiert, dass Sie in diesem Fall einen Pfad relativ wegen der Art benötigen, wie diese dummen dynamischen Konfigurationsdateien arbeiten (.htaccess).

Werfen Sie einen Blick auf der Version einen relativ Pfad:

RewriteEngine On 
RewriteRule ^lol$ /dev/public 

Ein intelligenter Weg, um diese Diskrepanz zu handhaben ist, ein Muster zu verwenden, die in beiden Fällen, in dynamischen Konfigurationsdateien arbeiten und in den realen Host-Konfigurationen:

RewriteEngine On 
RewriteRule ^/?lol$ /dev/public 

aber die beste Idee wäre nicht so dynamische Konfigurationsdateien an alle, aber die http-Server Host-Konfigura zu verwenden rationieren stattdessen. Diese Dateien sind notorisch fehleranfällig, schwer zu debuggen und verlangsamen den Server wirklich. Sie werden nur als letzte Option für Situationen angeboten, in denen Sie keine Kontrolle über die Host-Konfiguration haben (lesen Sie: wirklich günstige Hosting-Service-Provider) oder wenn Sie eine Anwendung haben, die eigene Schreibregeln schreibt (was ein offensichtlicher Sicherheitsalarm ist)).


Hier ist die offizielle Dokumentation (die Sie auf jeden Fall lesen wollen), im Abschnitt einen Blick Bezeichnung "Per-Verzeichnis Neuschreiben": http://httpd.apache.org/docs/current/mod/mod_rewrite.html

+0

Kommentare [Archiv im Chat] (http://chat.stackoverflow.com/rooms/136681/discussion-on-answer-by-arkascha-htacces-files-doesnt-work-despite-ofallowover). –

+0

arkascha ich sehr geschätzt helfe dir für dieses Thema zur Verfügung gestellt. Können Sie sich ein anderes Problem mit dem Server ansehen (Sicherung mit VPN)? Ich habe bereits ein eigenes Thema hier http://unix.stackexchange.com/questions/351857/securing-lan-www-server-with-openvpn gemacht – 180doman

Verwandte Themen