Ho due cartelle:
/forum/admin
/forum/adminhide
Vorrei avere un file .htaccess nella cartella del forum che riscrivesse internamente tutto tranne index.php su / admin in / adminhide.
Esempio:
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
Tutti i miei tentativi finora hanno prodotto solo errori interni del server.
risposte:
1 per risposta № 1Potrebbe funzionare (in un file .htaccess a livello di root):
RewriteRule ^forum/admin/index.php$ - [S=1]
RewriteRule ^forum/admin/(.*) forum/adminhide/$1
Eventuali URL corrispondenti alla prima regola non verranno riscritti (poiché la sostituzione ha il valore magico -
), e il [S=1]
flag fa sì che la regola successiva (che esegue la riscrittura effettiva) venga ignorata se la prima regola corrisponde.
Nota che questo interpreta le tue esigenze molto letteralmente: ogni Percorso URL che inizia con forum/admin/
viene riscritto, tranne per forum/admin/index.php
. Puoi preferire cambiare la prima regola in qualcosa di un po 'più allentato, come:
RewriteRule ^forum/admin/(index.php(/.*)?)?$ - [S=1]
Questo corrisponderà anche (e quindi escluderà dalla riscrittura) i percorsi URL forum/admin/
e forum/admin/index.php/whatever
.
Modificare: Se si desidera inserire il file .htaccess per questo in forum
cartella, basta rimuovere l'iniziale forum/
dalle regole e dal set RewriteBase
opportunamente invece:
RewriteBase /forum/
RewriteRule ^admin/index.php$ - [S=1]
RewriteRule ^admin/(.*) adminhide/$1