Alle Anfragen an eine Datei / All requests to one file

Alles, was den Apache betrifft, kann hier besprochen werden.

Alle Anfragen an eine Datei / All requests to one file

Postby apacheBro » 30. March 2018 13:03

Hallo,
ich bin auf der Suche nach einer Konfiguration, die jegliche Anfragen, die Apache entgegennimmt, an eine einzelne Datei weiterleitet, beispielsweise die index.php im Document Root. Selbst, wenn der angefragte Pfad im Dateisystem nicht existiert, soll die Anfrage ohne das Senden eines Status-Code 404 an die index.php weitergeleitet werden. Die Anfrage soll ausschließlich intern weitergeleitet werden; mod_rewrite ist also keine Option.

Danke für Eure Hilfe :)

--

Hello,
I'm interested in configuring Apache, so that it will forward every request to a single file, for example the index.php in the document root. In case of a non-existing path in the filesystem that is requested by a client, Apache should forward the request without sending a status-code 404 to the index.php-file. The request should only be handled internally; the use of mod_rewrite is therefore not possible.

I appreciate any help :)
apacheBro
 
Posts: 4
Joined: 30. March 2018 12:54
XAMPP version: /
Operating System: macOS High Sierrra

Re: Alle Anfragen an eine Datei / All requests to one file

Postby Altrea » 30. March 2018 13:44

Hallo,

Ich verstehe deine Anforderung nicht ganz. Was bedeutet ausschließlich intern? Und warum denkst du mod_rewrite eignet sich hierfür nicht?

Nach meiner Auffassung kommt ein FrontController Ansatz mit mod_rewrite in Frage, dieser ist für den Benutzer inteansparent, ist also im Browser nicht erkennbar. Alternative dazu wäre ein Proxy.
Aber beschreibe erstmal genau was du erreichen möchtest und welchem Zweck das dient.

Mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11935
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Alle Anfragen an eine Datei / All requests to one file

Postby apacheBro » 30. March 2018 14:08

Hallo,

danke für Deine Antwort.

Zunächst zur Struktur: Das Verzeichnis public_html (Document Root) enthält lediglich die index.php-Datei. Die Inhalte der Website befinden sich außerhalb des genannten Verzeichnisses und in Datenbanken.

Der Nutzer soll nun eine beliebige URL aufrufen können. Die eingehende Anfrage soll ohne Ausgabe einer Fehlermeldung an die index.php-Datei weitergeleitet werden, die die entsprechende Anfrage bearbeitet (beispielsweise Logs erstellt) und den angefragten Inhalt aus Request-Uri und Query-String ermittelt, welcher dann entsprechend ausgegeben wird.
Der Hintergrund ist dieses Vorgehens ist der, dass das Protokollieren der Anfrage sowie die Ausgabe der Inhalte zentral und nicht an unterschiedlichen Stellen erfolgt. Weiterhin habe ich so mehr Kontrolle über die (ausgegebenen) Inhalte.

Die URL soll, wie schon erwähnt, nicht umgeschrieben werden, sodass der Nutzer nichts davon mitbekommt, dass die Anfrage zunächst von der index.php-Datei bearbeitet wird.
apacheBro
 
Posts: 4
Joined: 30. March 2018 12:54
XAMPP version: /
Operating System: macOS High Sierrra

Re: Alle Anfragen an eine Datei / All requests to one file

Postby Nobbie » 31. March 2018 01:08

Genau so funktioniert Wordpress, warum sollte es bei Dir nicht mit mod_rewrite gehen, während es bei Wordpress so geht?
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: Alle Anfragen an eine Datei / All requests to one file

Postby Altrea » 31. March 2018 07:05

Probiere es mal mit folgendem rewrite und erkläre uns, weshalb dieser nicht deinen Anforderungen entspricht:

Code: Select all

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} !^/(index\.php)?$ [NC]
RewriteRule ^.*$ /index.php [L]


Bedenken solltest du außerdem folgendes bei deinen Überlegungen: Wenn ALLE Anfragen umgeleitet werden, dann auch Anfragen nach Asset Dateien (css, images, js, etc.). Hier musst du dann selbst sicherstellen, dass die entsprechenden Daten gefunden und an den Browser ausgeliefert werden.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11935
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Alle Anfragen an eine Datei / All requests to one file

Postby apacheBro » 31. March 2018 14:53

Hey,
also schon Mal vielen Dank für Deine Antwort, es funktioniert auch :)
Ich hatte nur gedacht, dass sich mod_rewrite nicht eignen würde, da ich bereits eine Umleitung auf https eingerichtet habe und ich deshalb dachte, mod_rewrite würde die geänderte URL immer an den Nutzer weitergeben.

Ein paar kurze Fragen habe ich aber noch:
  • Code: Select all
    RewriteCond %{REQUEST_URI} !^/(index\.php)?$ [NC]

    => Ist die Bedingung wirklich erforderlich? Ich meine, selbst wenn man direkt die index.php aufruft, ob man jetzt über die .htaccess umleitet oder nicht, dürfte doch eigentlich egal sein, oder? Probleme habe ich trotz fehlender Bedingung nämlich nicht.
  • Code: Select all
    RewriteRule ^.*$ [b]/index.php[/b] [L]

    => Solange ich das Basisverzeichnis setze, kann ich doch auch einfach "index.php" schreiben, richtig?
apacheBro
 
Posts: 4
Joined: 30. March 2018 12:54
XAMPP version: /
Operating System: macOS High Sierrra

Re: Alle Anfragen an eine Datei / All requests to one file

Postby Altrea » 31. March 2018 15:14

Ich würde die Condition drin lassen, da das Verhalten für die index.php Datei ansonsten uneindeutig ist. Das KANN bei einer Apache Version funktionieren, MUSS es aber nicht.
Würde der Apache die RewriteRule wörtlich umsetzen würde es auch Anfragen an index.php auf index.php umleiten und damit in eine Endlosschleife laufen.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11935
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Alle Anfragen an eine Datei / All requests to one file

Postby apacheBro » 31. March 2018 18:31

Alles klar, ich hab's wieder mit reingenommen.

Vielen Dank für Deine Hilfe :)
apacheBro
 
Posts: 4
Joined: 30. March 2018 12:54
XAMPP version: /
Operating System: macOS High Sierrra


Return to Apache

Who is online

Users browsing this forum: No registered users and 19 guests