Ho appena effettuato l'aggiornamento da EE 1 a EE 2 e sono in difficoltà con alcune modifiche. Ad esempio, il fatto che EE non produca più una barra finale sui suoi URL sta facendo un casino di molti dei miei link in cui ero dipendente da costruzioni come l'url generato da EE + il segmento aggiuntivo. Trovare e modificare tutti i luoghi in cui l'ho fatto sarebbe stato un piccolo incubo considerando le dimensioni e la configurazione del mio sito. C'è un modo per hackerare EE per recuperare il vecchio comportamento?Ripristinare la barra finale in ExpressionEngine 2?
risposta
C'è una soluzione .htaccess a questo, che ho usato nei miei vecchi siti EE a causa di questo problema esattamente.
Add slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule ^(.*)$ $1/ [L,R=301]
Fonte: http://devot-ee.com/articles/item/simple-htaccess-for-expressionengine-sites
Tuttavia, dal momento che è lì per impostazione predefinita in EE2, si potrebbe desiderare di fare il contrario e rimuovere la barra finale tramite .htaccess quindi non devi aggiungere/cancellare/qualsiasi cosa manualmente. Se si decide su questo, ecco il codice:
Rimuovere slash
RewriteCond %{HTTP_HOST} !^\.yoursite\.com$ [NC]
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]
Fonte: http://ee-spotlight.com/tips/a_standard_htaccess_file_with_expressionengine
Il problema non è tanto alla fine degli URL, sfortunatamente, è quando finisco con una barra finale mancante all'interno di un URL. Ho pubblicato un esempio in un precedente commento che spero illustri cosa intendo. La soluzione .htaccess suona alla grande per normalizzare la fine degli URL o avere o meno una barra finale, ma non sembra che possa risolvere le barre mancanti all'interno degli URL. –
Per qualche aggiunta allo slash accennato potrebbe causare conflitti con alcune forme. Aggiungere quanto segue per verificare se la richiesta è un GET potrebbe essere più sicuro.
# Add a trailing slash to paths without an extension
RewriteCond %{THE_REQUEST} ^GET
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule ^(.*)$ $1/ [L,R=301]
Ho finalmente avuto il tempo di testare questo e sono un po 'confuso su come funzioni effettivamente. Con l'aggiunta al mio .htaccess, se faccio clic su un collegamento in una delle mie pagine, la nuova pagina viene caricata senza una barra finale. –
- 1. ExpressionEngine 1 a ExpressionEngine 2 Aggiornamento con campo file nGen
- 2. Applica la barra finale in Rails Routing
- 3. Split URL sulla barra finale finale
- 4. Rimuovere la barra finale utilizzando .htaccess in WordPress
- 5. Rimuovi barra iniziale e finale/
- 6. Completamente disinstallare/ripristinare Textmate 2
- 7. Perché la barra finale del servizio Web è così importante?
- 8. Laravel 5 cattivo comportamento durante la rimozione della barra finale
- 9. Come reindirizzare 301 con o senza la barra finale?
- 10. Perché ASP.NET MVC ignora la mia barra finale?
- 11. ASP.NET MVC + IIS7 + FireFox: barra finale nell'URL
- 12. param opzionale ui-router senza barra finale
- 13. URL django senza barra finale non reindirizzano
- 14. Come disabilitare la barra profilatrice Symfony 2?
- 15. CSS3 - Come "ripristinare" :: - Proprietà webkit-barra di scorrimento per la barra di scorrimento di default
- 16. ExpressionEngine no_results non funziona
- 17. Maglia 2: render correttamente il contenuto statico di Swagger senza barra finale (/)
- 18. ExpressionEngine aumento textarea limite
- 19. Esiste un'espressione regolare per rimuovere una barra finale in Perl?
- 20. Come rimuovere la barra finale di un URL in un'app Rails? (in una vista SEO)
- 21. Symfony2: URL con barra finale e parametro opzionale
- 22. ExpressionEngine: Modello a partita singola
- 23. Electron.js Come minimizzare/chiudere la finestra sulla barra delle applicazioni e ripristinare la finestra dal vassoio?
- 24. Come disabilitare il reindirizzamento 301 che aggiunge la barra finale al nome della directory in Apache
- 25. Come faccio a rendere una barra finale opzionale con webapp2?
- 26. Metodo finale proxy in Classe non finale
- 27. ExpressionEngine: Help w/Ordering Reverse Related Entries
- 28. ? ACT non funziona più dopo l'aggiornamento da ExpressionEngine 2.2.1 a ExpressionEngine 2.5.3
- 29. Barra finale prima di una stringa di query. Cattiva pratica?
- 30. Come generare una barra di navigazione multilivello con il componente aggiuntivo Struttura ExpressionEngine?
puoi spiegare un po 'di più "costruzioni come URL generato da EE + segmento aggiuntivo"? – GDmac
Ad esempio, ho riscontrato un problema con un modello in cui stavo utilizzando il modulo Tag e avevo bisogno di impostare un collegamento come questo: "{path = 'Caratteri/Stagione'}/{websafe_tag} /". In origine, non avevo bisogno del/before {websafe_tag} poiché la prima parte dell'URL è stata generata con una barra finale. Quindi sono dipeso da questo in molti casi. –
Sembra che {path =} e {url_title_path} si basino su '$ this-> EE-> functions-> create_url ($ path)', in modo che possa essere un posto in cui inserire una barra in più. Comunque raccomando una ricerca e sostituire nei modelli sopra core EE di hacking. – GDmac