Hallo an alle!
Ich habe ein Ubuntu-System (Hardy Heron) und habe dort PHP und Apache2 installiert in den Versionen 5.2.4. und 2.2.8.
Nun möchte ich das Rewriting aktivieren, was mir auch gelungen ist, zu sehen an der phpinfo-Seitenausgabe. Dort wird das Modul aufgelistet.
Nun habe ich alles so gemacht, wie auch bei meinem Intrepid-System, nur bei Intrepid funktioniert es bei Hardy Heron nicht.
Die .htaccess ist die gleiche, die Vorgehensweise ist die gleiche. An was kann das liegen?
Im Apache-Log erscheint:
File does not exist: /var/www/PHANTOM/10
die RewriteRule schreibt vor:
RewriteRule ^([0-9-]+)/([0-9-]+)/.+.html$ „/?TESTID=$1&NOCHEINTEST=$2“
Jemand eine Idee?
Gruß PHANTOM
Im Apache-Log erscheint:
File does not exist: /var/www/PHANTOM/10
die RewriteRule schreibt vor:
RewriteRule ^([0-9-]+)/([0-9-]+)/.+.html$ „/?TESTID=$1&NOCHEINTEST=$2“
Jemand eine Idee?
Du leitest ja nach „/?TESTID=01234&NOCHEINTEST=56789“ um. Dazu muss natürlich ein entsprechendes Default-Dokument existieren in deinem www-root. Was passiert denn wenn du in deinem Browser einfach mal
http://dein-server/?TESTID=01234&NOCHEINTEST=56789 aufrufst? Dann sollte doch der gleiche Fehler wie oben kommen.
Ja, das existiert auch, nämlich index.php.
Es sollte index.php?.. aufrufen.
Gebe ich das so in den Webbrowser ein, klappt es auch.
Gruß PHANTOM
Ja, das existiert auch, nämlich index.php.
Es sollte index.php?.. aufrufen.
Gebe ich das so in den Webbrowser ein, klappt es auch.
Dann leite doch mal direkt an die index.php weiter und nimm mal die Anführungszeichen weg. Also:
^([0-9-]+)\/([0-9-]+)\/.+\.html$ /index.php?TESTID=$1\&NOCHEINTEST=$2
Klappts dann?
Nein, haut nicht hin.
Ich habe auch schon andere RewriteRules genommen, ohne Erfolg.
Und wie gesagt mit 8.10 läufts hingegen.
Gruß PHANTOM
Hallo PHANTOM,
damit man besser verfolgen kann, was dein mod_rewrite so treibt, leite doch mal die Aktionen mit RewriteLog in eine Datei um und stelle den RewriteLogLevel am besten gleich auf 9. Da kannst Du dann die Datei hier analysieren, hilft vielleicht.
Viele Grüße
Marvin
Nein, haut nicht hin.
Ich habe auch schon andere RewriteRules genommen, ohne Erfolg.
Und wie gesagt mit 8.10 läufts hingegen.
Die Rewrite-Engine hast du aber schon aktiviert vorher in der .htaccess Datei?? Und das mod_rewrite Modul ist auch aktiviert?
RewriteEngine on
Und in dem Verzeichnis ist die Verwendung von .htaccess Dateien auch aktiviert, d.h. die .htaccess Datei wird auch interpretiert?
Das Escape-Zeichen beim & scheint mir beim Rewrite-Ziel auch nicht nötig zu sein, also
RewriteRule ^([0-9-]+)\/([0-9-]+)\/.+\.html$ /index.php?TESTID=$1&NOCHEINTEST=$2
Wenn das alles nicht hilft, würde ich mal einfacher anfangen:
RewriteEngine On
RewriteRule ^ http://www.google.de [R,L]
Wenn sowas schon nicht funktioniert, dann wird dein mod_rewrite nicht vernünftig geladen oder die .htaccess Datei nicht interpretiert.
Und in dem Verzeichnis ist die Verwendung von .htaccess
Dateien auch aktiviert, d.h. die .htaccess Datei wird auch
interpretiert?
Wie tue ich das?
Wenn das alles nicht hilft, würde ich mal einfacher anfangen:
RewriteEngine On
RewriteRule ^ http://www.google.de [R,L]
-> Funktioniert nicht. Bleibt auf meiner Domain und leitet nicht um.
Gruß PHANTOM
Teste doch mal ob die .htaccess Datei überhaupt verwendet wird. Erstelle dazu einfach eine .htaccess Datei mit folgendem Inhalt und schau ob du auf das entsprechende Verzeichnis in der die .htaccess Datei liegt noch zugreifen kannst.
AuthName "Test"
AuthType Basic
AuthUserFile /pfad/zu/leerer/datei
require valid-user
Ich erhalte kein Fenster, dass ich mich „registrieren“ muss.
-> Die .htaccess wird wohl überhaupt nicht berücksichtigt.
Gruß PHANTOM
Ich erhalte kein Fenster, dass ich mich „registrieren“ muss.
-> Die .htaccess wird wohl überhaupt nicht berücksichtigt.
Was hast du denn dann überhaupt als AllowOverride in dem entsprechenden Verzeichnis in der Apache-Config angegeben? Wenn du AllowOverride auf „None“ stehen hast, dann ist es schon klar, dass die htaccess-Datei ignoriert wird.
So siehts aus bei mir:
ServerName www.phantom.de
ServerAlias phantom.online.de
ServerAdmin webmaster@localhost
DocumentRoot /var/www/phantom
Options FollowSymLinks
AllowOverride All
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
Alias /doc/ "/usr/share/doc/"
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
Dann leg doch mal die Datei /var/www/phantom/.htaccess an mit folgendem Inhalt:
Redirect /test http://www.google.de
Dann führst du folgenden Befehl aus um sicher zu stellen dass die .htaccess Datei gelesen werden kann:
sudo chmod +r /var/www/phantom/.htaccess
Anschließend startest du zur Sicherheit noch deinen Apache neu und rufst im Webbrowser mal http://dein-webserver/test auf. Erscheint dann die Google-Seite oder was kommt da?