Ich möchte den gesamten Datenverkehr auf eine einzelne .php-Gateway-Datei umleiten. Diese Datei führt die Authentifizierung durch und verwendet Ajax, um die angeforderte Datei abzurufen.
Ich brauche also eine .htaccess mit Ablauf wie diesem:
if external request for any file
redirect (or rewrite) to /gateway.php
gateway.php müsste dann auf die Datei zugreifen können.
Das ist das Beste, was mir eingefallen ist:
RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1
RewriteCond %{REQUEST_URI} !/gateway\.php$
RewriteRule .* http://www.website.com/gateway.php?req=%{REQUEST_URI} [R=302,L]
Das funktioniert, aber wenn das Ajax auf gateway.php versucht, den Inhalt von einer anderen Seite abzurufen, ruft es den Inhalt von gateway.php ab (aufgrund der Umleitung). Ich muss irgendwie eine Ausnahme hinzufügen!
Jede Hilfe wäre sehr willkommen!
Antwort1
Sie brauchen dieses RewriteBase dort nicht, versuchen Sie Folgendes:
RewriteEngine on
RewriteRule ^/gateway\.php$ - [L]
RewriteCond %{REMOTE_HOST} ^127\.0\.0\.1
RewriteRule ^(.*)$ - [L]
RewriteRule ^(.*)$ http://www.website.com/gateway.php?req=%{REQUEST_URI} [R=302,L]
Zuerst sagen Sie ausdrücklich, dass angehalten werden soll, wenn gateway.php angefordert wird. Dann sagen Sie, wenn es vom lokalen Host kommt, führen Sie einfach die URL aus, SONST führen Sie die Umleitung aus. Möglicherweise unterliegen Sie einer Art internem Umleitungsmechanismus. Möglicherweise müssen Sie RewriteLog und RewriteLogLevel schnell einrichten, um die Aktionen von Apache zu debuggen.