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.

È stato utile?

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 target URL . informazioni sul percorso aggiuntivo oltre ai abbinato URL-Path verrà aggiunto il target URL .

RedirectMatch invece:

RedirectMatch 301 ^/team/ /team.html
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top