Rewrite mit falschem Ordner
Hallo,
ich bastle gerade an einer Website. Für diesen Zweck will ich (zur Sicherheit) die Dateiendung .php verschleiern. Aus diesem Grund nutze ich folgendes Rewrite:
Das funktioniert soweit auch. Der Zugriff auf login.php / login.html / login.pl etc wird umgeleitet zu /login. Jetzt ist aber das Problem, dass auf dieser Seite Benutzer Profile erstellen können, die mittels Username so aufrufbar sind:
www.domain.com/username
Dabei entsteht natürlich ein Konflikt mit möglichen vorhandenen Dateien. Ich hab mich mal umgesehen, wie andere Seiten das gelöst haben. Am besten hat mir das vorgehen von Twitter gefallen, die alle echten Dateien mit dem Präfix /i/ aufruft. (Also /i/login statt /login).
Das möchte ich in mein Rewrite auch einbauen, allerdings scheitere ich daran. (Ich möchte das mit /s/ - für "system" - lösen). Mod_Rewrite ist leider nicht meine Stärke. Kann mir jemand dabei helfen meine Zeilen so umzubauen, dass echte Dateien (mit Ausnahme von index) nur über folgende Syntax aufgerufen werden können: /s/login, /s/register, /s/pw-forget, etc...? Bzw das ganze auch gleich um eine Zeile ergänzen, die dann /(a-zA-Z0-9) in profile.php?$1 umwandelt, ohne dass eine Weiterleitung auf /s/profile?$1 oder so passiert?
Vielen Dank.
ich bastle gerade an einer Website. Für diesen Zweck will ich (zur Sicherheit) die Dateiendung .php verschleiern. Aus diesem Grund nutze ich folgendes Rewrite:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.(php|pl|py|cgi|htm|html)
RewriteRule ^/?(.*)\.(php|pl|py|cgi|htm|html)$ /$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^/?(.*)$ /$1.php [L]
Das funktioniert soweit auch. Der Zugriff auf login.php / login.html / login.pl etc wird umgeleitet zu /login. Jetzt ist aber das Problem, dass auf dieser Seite Benutzer Profile erstellen können, die mittels Username so aufrufbar sind:
www.domain.com/username
Dabei entsteht natürlich ein Konflikt mit möglichen vorhandenen Dateien. Ich hab mich mal umgesehen, wie andere Seiten das gelöst haben. Am besten hat mir das vorgehen von Twitter gefallen, die alle echten Dateien mit dem Präfix /i/ aufruft. (Also /i/login statt /login).
Das möchte ich in mein Rewrite auch einbauen, allerdings scheitere ich daran. (Ich möchte das mit /s/ - für "system" - lösen). Mod_Rewrite ist leider nicht meine Stärke. Kann mir jemand dabei helfen meine Zeilen so umzubauen, dass echte Dateien (mit Ausnahme von index) nur über folgende Syntax aufgerufen werden können: /s/login, /s/register, /s/pw-forget, etc...? Bzw das ganze auch gleich um eine Zeile ergänzen, die dann /(a-zA-Z0-9) in profile.php?$1 umwandelt, ohne dass eine Weiterleitung auf /s/profile?$1 oder so passiert?
Vielen Dank.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 331579
Url: https://administrator.de/forum/rewrite-mit-falschem-ordner-331579.html
Ausgedruckt am: 22.04.2025 um 02:04 Uhr
1 Kommentar