Ich habe zwei Ordner:
/forum/admin
/forum/adminhide
Ich hätte gerne eine .htaccess-Datei im Forum-Ordner, die intern alles außer index.php on / admin to / adminhide neu schreiben würde.
Beispiel:
http://website.com/forum/admin/index.php -> don"t do anything
http://website.com/forum/admin/image.png -> internal rewrite to http://website.com/forum/adminhide/image.png
Alle meine Versuche haben bisher nur interne Serverfehler hervorgebracht.
Antworten:
1 für die Antwort № 1Dies könnte funktionieren (in einer .htaccess-Datei auf Stammebene):
RewriteRule ^forum/admin/index.php$ - [S=1]
RewriteRule ^forum/admin/(.*) forum/adminhide/$1
URLs, die der ersten Regel entsprechen, werden nicht neu geschrieben (da die Substitution den magischen Wert hat) -
), und das [S=1]
Flag bewirkt, dass die nächste Regel (die das tatsächliche Neuschreiben ausführt) übersprungen wird, wenn die erste Regel übereinstimmt.
Beachten Sie, dass dies Ihre Anforderungen sehr wörtlich interpretiert: jeden URL-Pfad beginnend mit forum/admin/
wird umgeschrieben, außer für forum/admin/index.php
. Möglicherweise möchten Sie die erste Regel etwas lockerer ändern, beispielsweise:
RewriteRule ^forum/admin/(index.php(/.*)?)?$ - [S=1]
Dies entspricht auch den URL-Pfaden (und schließt somit das Neuschreiben aus) forum/admin/
und forum/admin/index.php/whatever
.
Bearbeiten: Wenn Sie die .htaccess-Datei dafür in die forum
Ordner, nur die Initiale entfernen forum/
von den Regeln und festgelegt RewriteBase
passend stattdessen:
RewriteBase /forum/
RewriteRule ^admin/index.php$ - [S=1]
RewriteRule ^admin/(.*) adminhide/$1