Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Serverwechsel => No input file specified

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
Neues Thema Antworten
petefish
PostRank 1
PostRank 1
Beiträge: 5
Registriert: 01.03.2009, 00:50

Beitrag von petefish » 13.03.2013, 18:43

Hallo,

mein Provider hat mich zwangsumgesiedelt. Nun funktionieren die meisten meiner htaccess Regeln nicht mehr.

z.B.

Code: Alles auswählen

RewriteEngine On
#Regel 1, geht nicht
RewriteRule ^test/dateiname.html$ /datei.php [QSA]

#Regel 2, geht
RewriteRule ^dateiname.html$ /datei.php [QSA]

#Regel 3, geht
RewriteRule ^test/$ /datei.php [QSA]
Regel 1 funktioniert nicht, es wird nur "No input file specified." ausgegeben.
Der Ordner "test" und die .html Dateien existieren logischerweise nicht auf dem ftp (sind nur virtuell).
Regel 2 und 3 funktionieren tadellos.
Sobald ein virtueller Ordner in Verbindung mit einer virtuellen Datei in der Regel vorkommt, funktioniert es einfach nicht.

Woran liegt das?

Ein paar Infos zum Server:
Linux server19 3.4.28-2.20-default #1 SMP Tue Jan 29 16:51:37 UTC 2013 (143156b) x86_64
PHP: 5.3.15
Server API: CGI/FastCGI

Ich habe schon mit den php.ini Einstellungen
cgi.fix_pathinfo (derzeit 1) und cgi.force_redirect (derzeit 0) erfolglos experimentiert.

Anzeige von ABAKUS

von Anzeige von ABAKUS »


Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

elmex
PostRank 9
PostRank 9
Beiträge: 1009
Registriert: 03.05.2005, 09:09

Beitrag von elmex » 13.03.2013, 19:56

War es nicht so, dass man einige Zeichen in der RewriteRule maskieren sollte? Ich zumindest schreibe z.B. immer \/ statt nur /...

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 14.03.2013, 12:02

elmex hat geschrieben:War es nicht so, dass man einige Zeichen in der RewriteRule maskieren sollte? Ich zumindest schreibe z.B. immer \/ statt nur /...
Den / maskiere ich nur in JavaScript bei </a> mit \/, damit JS das nicht mit </ dem Ende von JavaScript verwechselt, die letzten Versionen können damit aber wohl auch schon umgehen. Auch wenn / wie bei /Muster/ als Delimiter verwendet werden, muss / im Muster \/ maskiert werden, bei #Muster# oder sonstigen Delimiter-Zeichen hingegen nicht.

Was aber in den Mustern der Regeln maskiert werden sollte, ist der Punkt \. als Meta-Zeichen, also ^dateiname\.html$. In einer Zeichenklasse brauchte er wieder nicht maskiert zu werden. Am Ende einer Zeile würde ich [L] verwenden, kombiniert mit [QSA] hingegen nur, wenn der QueryString verändert werden soll.
petefish hat geschrieben:Regel 1 funktioniert nicht, es wird nur "No input file specified." ausgegeben.
So eine Mitteilung kenne ich nicht oder kann mich nur nicht daran erinnern. Wenn

"www.example.com/test/dateiname.html"

aufgerufen wird, sollte im Hintergrund

"www.example.com/datei.php"

ausgegeben werden, falls vorhanden:

Code: Alles auswählen

RewriteRule ^test/dateiname\.html$ /datei.php &#91;L&#93;
Edit: Gerade nachgelesen, die Mitteilung kommt ja auch von PHP "No input file specified" und hat wohl eher weniger mit der htaccess zu tun? Somit sollte sich ja zunächst einmal datei.php aufrufen lassen und richtig arbeiten, bevor die für URL-Rewriting genutzt wird.

Edit 2: Kurz getestet, funktioniert bei mir unter Localhost. Wenn ich "https://localhost/test/dateiname.html" aufrufe wird "https://localhost/a.php" ausgeliefert.

Code: Alles auswählen

RewriteRule ^test/dateiname\.html$ /a.php &#91;L&#93;
Eventuell müsstest Du da vielleicht noch

Code: Alles auswählen

Options  +FollowSymLinks +SymLinksIfOwnerMatch
oder so etwas ähnliches einfügen, doch das habe ich bisher noch nie getestet, da noch nie benötigt. Da müsste ich selbst erst einmal nachlesen, wie das richtig eingefügt wird. Jedenfalls funktioniert diese Schreibweise bei mir auch:

Code: Alles auswählen

RewriteEngine on
Options +FollowSymlinks

RewriteRule ^test/dateiname\.html$ /a.php &#91;L&#93;
Nach allen Seiten, die ich zwischenzeitlich überflog, bleibt "No input file specified" aber eine Fehlermitteilung von PHP.