Ich habe gerade von EE 1 zu EE 2 aktualisiert und ich habe mit einigen der Änderungen zu kämpfen. Zum Beispiel macht die Tatsache, dass EE nicht länger einen abschließenden Schrägstrich auf seinen URLs ausgibt, eine Menge meiner Links, wo ich auf Konstruktionen wie EE generierte URL + zusätzliches Segment angewiesen war. Das Finden und Bearbeiten aller Orte, an denen ich das gemacht habe, wäre ein kleiner Albtraum, wenn man die Größe und das Setup meiner Seite bedenkt. Gibt es eine Möglichkeit, EE zu hacken, um das alte Verhalten wieder zu bekommen?Den abschließenden Schrägstrich in ExpressionEngine 2 zurückgeben?
Antwort
Es gibt eine .htaccess-Lösung für diese, die ich in meinen älteren EE-Sites wegen dieses Problems genau verwendet habe.
Add Schrägstrich
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule ^(.*)$ $1/ [L,R=301]
Quelle: http://devot-ee.com/articles/item/simple-htaccess-for-expressionengine-sites
Da es jedoch in EE2 standardmäßig gibt es, könnte man das Gegenteil tun wollen und entfernen den Schrägstrich über .htaccess Sie müssen also nicht manuell hinzufügen/löschen/was auch immer. Wenn Sie auf dem entscheiden, hier ist der Code:
entfernen Nachgestellte Slash
RewriteCond %{HTTP_HOST} !^\.yoursite\.com$ [NC]
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]
Quelle: http://ee-spotlight.com/tips/a_standard_htaccess_file_with_expressionengine
Das Problem ist nicht so sehr am Ende der URLs, leider ist es, wenn ich mit einem fehlenden Schrägstrich innerhalb einer URL enden. Ich habe ein Beispiel in einem früheren Kommentar gepostet, der, wie ich hoffe, illustriert, was ich meine. Die .htaccess-Lösung klingt hervorragend, um das Ende von URLs zu normalisieren, die entweder einen Schrägstrich haben oder nicht, aber es scheint nicht, als ob es die fehlenden Schrägstriche in URLs lösen könnte. –
Für einigen Zusatz des Schrägstrichs erwähnt könnten Konflikte mit einigen Formen verursachen. Wenn Sie Folgendes hinzufügen, um zu prüfen, ob die Anforderung ein GET ist, ist dies möglicherweise sicherer.
# 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]
Ich hatte endlich Zeit, dies zu testen und ich bin ein wenig verwirrt, wie das eigentlich funktioniert. Wenn ich einen Link auf einer meiner Seiten anklicke, wird die neue Seite immer noch ohne einen Schrägstrich geladen. –
- 1. Entfernen führenden und abschließenden Schrägstrich/
- 2. So entfernen Sie den abschließenden Schrägstrich von eingebetteten Jetty-URLs?
- 3. Dynamische Navigation in ExpressionEngine 2
- 4. Warum ignoriert ASP.NET MVC meinen abschließenden Schrägstrich?
- 5. ExpressionEngine 1 to ExpressionEngine 2 Upgrade mit dem nGen-Dateifeld
- 6. App-Status mit optionalem Parameter und keinem abschließenden Schrägstrich
- 7. Senden Webbrowser immer einen abschließenden Schrägstrich nach einem Domänennamen?
- 8. So entfernen Sie automatisch den abschließenden Schrägstrich in der .htaccess-Datei
- 9. Den Fall eines Titels in ExpressionEngine beibehalten?
- 10. Entfernen Sie den abschließenden Schrägstrich mit htaccess, aber bewahren Sie die Abfragezeichenfolge
- 11. Vergleiche 2 Arrays, die den Unterschied zurückgeben
- 12. Entfernen Sie den Schrägstrich von Pfaden in WiX
- 13. Geben Sie der Basis-URL des OData-Servicedokuments in WebApi OData einen abschließenden Schrägstrich
- 14. RewriteRule Schrägstrich optional
- 15. Wie entfernt man den Schrägstrich im Verzeichnis in htaccess?
- 16. Schaltfläche "Zurück" aktualisiert die Seite nicht, wenn URL GET-Parameter oder abschließenden Schrägstrich enthält?
- 17. Benötigen Sie htaccess-Code, um URLs mit einem abschließenden Schrägstrich außer XML-Dateien neu zu schreiben
- 18. OData Abfragen geben 404 Fehler, wenn ich einen abschließenden Schrägstrich hinzufügen
- 19. Der Versuch, einen abschließenden Schrägstrich mit htaccess hinzuzufügen, führt zu einem absoluten Pfad
- 20. ExpressionEngine: Einzeleintrag Vorlage
- 21. XMLHttpRequest ersetzt automatisch den umgekehrten Schrägstrich (\) durch einen Schrägstrich (/)
- 22. Konvertieren zurück Schrägstrich in Schrägstrich in Python
- 23. Entfernen Sie den Schrägstrich mit .htaccess außer Heimat/Zielseite
- 24. Anzeigen von Einträgen pro Kategorie in ExpressionEngine
- 25. ExpressionEngine Installationsprobleme: Datenbankverbindungsfehler auf Localhost
- 26. Einträge in ExpressionEngine mit AJAX laden
- 27. WordPress vs ExpressionEngine: ist EE den Preis wert?
- 28. Verhindern von Schrägstrich verursacht Endlosschleife
- 29. htaccess auf ExpressionEngine MSM Site
- 30. Export ExpressionEngine Mitglieder zu WordPress
Können Sie ein bisschen mehr "Konstruktionen wie EE erzeugte URL + zusätzliches Segment" erklären? – GDmac
Zum Beispiel hatte ich ein Problem mit einer Vorlage, wo ich das Modul Tags verwendete und ich musste einen Link wie folgt einrichten: "{path = 'Characters/Season'}/{websafe_tag} /". Ursprünglich brauchte ich das/vor {websafe_tag} nicht, da der erste Teil der URL mit einem Schrägstrich generiert wurde. Daher war ich in vielen Fällen davon abhängig. –
Sieht so aus, als ob {path =} und {url_title_path} auf '$ this-> EE-> functions-> create_url ($ path)' basieren, also könnte es ein Ort sein, um einen zusätzlichen Schrägstrich zu hacken. Allerdings würde ich eine Suche empfehlen und ersetzen Sie in den Vorlagen über Hacking Core EE. – GDmac