Ich versuche RewriteRules in .htaccess
mit relativen Pfaden zu verwenden, aber Apache scheint den physischen Pfad anstelle des Server Pfades zum Ausgang zu wollen, wenn ich für die Ausgabe eines relativen Pfad versuchen. Absolute und Server-Root-Pfade funktionieren einwandfrei. Zum Beispiel:Warum deckt Apache's RewriteRule lokale Pfade auf?
RewriteEngine On
# this works fine, 127.0.0.1/ab redirects to 127.0.0.1/cd
RewriteRule ^ab$ /cd [R]
# this doesn't work... 127.0.0.1/wx redirects to 127.0.0.1/C:/path/to/files/yz
RewriteRule ^wx$ yz [R]
ein „RewriteBase /
“ löst das Problem Hinzufügen, aber es ist mühsam den Weg zu jedem .htaccess
hinzuzufügen, und es macht es schwieriger, die Verzeichnisstruktur zu ändern. Gibt es einen Grund, warum RewriteBase standardmäßig auf den aktuellen physischen Pfad anstelle des aktuellen URI Pfads zurückgreift?
Ich möchte eine tatsächliche Umleitung auf den neuen Pfad - ich verwende dies zum Erstellen von Verknüpfungen URLs und korrigieren Tippfehler. Gibt es eine Möglichkeit, die manuelle Einstellung von RewriteBase in jeder .htaccess-Datei zu vermeiden? – zildjohn01
Im Allgemeinen müssen Sie die 'RewriteBase' nicht ändern. Verwenden Sie nur relative Pfade für interne und absolute Pfade für externe Weiterleitungen. – Gumbo
Könnten Sie bitte erläutern, was Sie meinen? In meinem Code habe ich einen relativen Pfad für eine interne Weiterleitung verwendet, und es endete mit dem unerwünschten Verhalten, das ich beschrieben habe. – zildjohn01