Problema con il reindirizzamento di una cartella con mod_alias
-
21-09-2019 - |
Domanda
Un'altra domanda sulla scia questa discussione . La voce unica rimasta che non riesco a risolvere è che c'è un elenco per una cartella ormai inesistente '/ squadra /', ma se aggiungo questo nel mio file .htaccess, rompe tutte le altre voci .htaccess per i file in quella cartella, vale a dire
redirect 301 /team/ /team.html
redirect 301 /team/joe_bloggs.htm /team.html
redirect 301 /team/joe_bloggs.html /team.html
redirect 301 /team/bill_smith.htm /team.html
redirect 301 /team/bill_smith.html /team.html
Se quindi si tenta di visitare /team/joe_bloggs.htm, che mi porta a
/team.html/joe_bloggs.htm
Se posso risolvere questo problema, può aiutare a capire come risolvere la mia domanda originale e ridurre l'elenco enorme di pagine di reindirizzamento nel mio file .htaccess, quindi ogni aiuto ben accetto.
Soluzione
È necessario modificare l'ordine, e mettere "redirect 301 /team/ /team.html
" alla fine.
Si legge linea per linea e se trova qualcosa si adatta, lo sostituisce.
Inoltre, penso che hai bisogno di imparare da aggiungere, ^ e $ caratteri. ^ Significa l'espressione dovrebbe iniziare, e $ significa l'espressione dovrebbe finire.
Così, ^/team/$
significa, dovrebbe essere esattamente / squadra / e non ci vorrà partita /team/joe_bloggs.htm
Altri suggerimenti
Il Redirect
direttiva lavora su prefissi di percorso. E in questo caso il prefisso del percorso utilizzato nel vostro prima direttiva (/team/
) le partite e il resto del percorso viene aggiunto al nuovo percorso URL.
[...] qualsiasi richiesta che inizia con
URL-Path
restituirà una richiesta di reindirizzamento al client in corrispondenza della posizione del targetURL
. informazioni sul percorso aggiuntivo oltre ai abbinatoURL-Path
verrà aggiunto il targetURL
.
RedirectMatch
invece:
RedirectMatch 301 ^/team/ /team.html