htaccess Rewrite funktioniert bei einer URL nicht

Snooty

Commodore
Registriert
Dez. 2012
Beiträge
4.485
Hio,

ich dreh hier noch langsam durch :freak:

Ich nutze eine .htaccess für Rewrite-Regeln. Das klappt soweit alles wunderbar - mit Ausnahme einer bestimmten URL. Ich hab schon alles ausprobiert um den Fehler auszumerzen. D.h. copy'n paste von anderen, funktionierenden Regeln, die Regel händisch neu geschrieben etc. Es heißt immer nur: Seite nicht gefunden.

Es geht dabei um die Seite "statistik". Alle Seiten sind über /index.php?info=seitenname erreichbar - auch die Statistik. Per Rewrite soll daraus einfach nur /statistik/ werden. Das klappt für alle Seiten, aber nicht für die Statistik (Fehler 404). Interessanterweise klappt es aber auch für die englische Version unter /en/statistics/.

Ich weiß nicht, was hier schief läuft. Hat jemand eine Idee?

PHP:
Options +FollowSymLinks

RewriteEngine On
RewriteBase /

# Add trailing slash
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]

RewriteRule ^(impressum|pdf|bilder|kontakt|verweise|sitemap|suche|chipfertigung)/$ index.php\?info=$1 [QSA]
RewriteRule ^en/(sitemap|contact)/$ index.php\?info=$1&sprache=en [QSA]

RewriteRule ^en/search/$ index.php?info=suche&sprache=en [QSA]
RewriteRule ^en/imprint/$ index.php?info=impressum&sprache=en [QSA]
RewriteRule ^en/images/$ index.php?info=bilder&sprache=en [QSA]
RewriteRule ^en/references/$ index.php?info=verweise&sprache=en [QSA]
RewriteRule ^en/pdf/$ index.php?info=pdf&sprache=en [QSA]
RewriteRule ^en/technology/$ index.php?info=technologie&sprache=en [QSA]
RewriteRule ^en/statistics/$ index.php?info=statistik&sprache=en [QSA]
RewriteRule ^en/acronyms/$ index.php?info=akronyme&sprache=en [QSA]
RewriteRule ^en/lexicon/$ index.php?info=lexikon&sprache=en [QSA]

RewriteCond %{THE_REQUEST} ^[A-Z]+\s/index\.php\?info=([a-z]+)
RewriteRule ^index\.php$ /%1/? [R=301]
RewriteRule ^/([a-z]+)/$ index.php?info=$1 [L]

RewriteRule ^suche/([^/\.]+)/([a-z]+)/([a-z]+)/([0-9]+)/([a-z]+)/?$ suche/suche.php?s=$1&exp_full=$2&exp_capital=$3&a=$4&sprache=$5 [QSA]

RewriteRule ^pdf/([0-9]+)/?$ pdf/pdf.php?pdf=$1 [QSA]

RewriteRule ^lexikon/$ index.php?info=lexikon
RewriteRule ^lexikon/([A-Z])/$ index.php?info=lexikon&buchstb=$1
RewriteRule ^lexikon/([A-Z])/([^/\.]*)/$ index.php?info=lexikon&buchstb=$1&wort=$2 [QSA]

RewriteRule ^technologie/$ index.php?info=technologie
RewriteRule ^technologie/hp([0-9]+)/$ index.php?info=technologie&hp=$1 [QSA]

RewriteRule ^statistik/$ index.php?info=statistik
RewriteRule ^statistik/([a-z]+)/$ index.php?info=statistik&db=$1 [QSA]

RewriteRule ^en/statistics/$ index.php?info=statistik&sprache=en
RewriteRule ^en/statistics/([a-z]+)/$ index.php?info=statistik&db=$1&sprache=en [QSA]

RewriteRule ^akronyme/$ index.php?info=akronyme
RewriteRule ^akronyme/([A-Z])/$ index.php?info=akronyme&buchstabe=$1 [QSA]

RewriteRule ^en/acronyms/$ index.php?info=acronyms&sprache=en
RewriteRule ^en/acronyms/([A-Z])/$ index.php?info=acronyms&buchstabe=$1&sprache=en [QSA]

Das Problem besteht, seit ich von HostEurope zu Domainfactory gewechselt bin.

Vielleicht wichtiges Detail (das war aber auch vorher schon so): zum Aufruf der englischen Version von Akronyme muss ich als Rewrite-Regel zwingend
PHP:
RewriteRule ^en/acronyms/$ index.php?info=acronyms&sprache=en //acronyms auf englisch
schreiben, bei der englischen Version von Statistik aber
PHP:
RewriteRule ^en/statistics/$ index.php?info=statistik&sprache=en //statistik auf deutsch
In beiden Fällen wird eine PHP-Datei (jeweils deutsch: akronyme.php bzw. statistik.php) eingebunden.
 
Zuletzt bearbeitet:
Meistens liegt ein 404 Fehler einfach daran, was der Code besagt. FILE NOT FOUND
Also gibts die Datei bzw. den Ort nicht auf die du verweist oder der Fehler steckt direkt in der statistik.php-Seite. Schau doch einfach mal was die Apache Logs sagen, was denn nicht gefunden wird
 
Das Logfile ist leider gänzlich leer.

Aber die Datei ist ja da - sonst würde der Aufruf über ?info=statistik auch nicht klappen. Ich bin ja auch nur umgezogen ohne was am Script zu ändern.

Merkwürdigerweise bekomme ich heute aber auch beim Aufruf der Seite eine Passwortabfrage (nur bei der Umleitung, nicht direkt über die Parameter-Schreibweise), obwohl ich da im Moment keinen Schutz eingerichtet habe. Ich warte noch auf eine Antwort vom Support.
 
Dann musst halt den Log-Level hochsetzen ;) Lass ihn doch mal ein bisschen plaudern den Indianer
 
So, hab jetzt die Antwort vom Support bekommen.

Der Pfad statistik ist schon seitens Domain Factory reserviert. Keine Ahnung, warum der Verzeichnisschutz erst heute aufgepoppt ist - evtl. hat die Konfiguration einfach noch im Hintergrund gewerkelt.

Ich habe jetzt einen anderen Pfad angegeben und damit läuft es wieder.
 

Ähnliche Themen

M
Antworten
2
Aufrufe
799
Mr. Snoot
M
Zurück
Oben