Wie man eine bessere URL mit .htaccess und mehrere Parameter?
Ich habe eine sehr lange einem unfreundlichen URL ein, ich bin auf der Suche, um SEO besser für den Standort:
http://www.site.com/sub-site/index.php?page=nameofpage&locale=de_de
Ich möchte diese statt:
http://
www.site.com/sub-site/en/nameofpage
alle URLS sind hart codiert in die links in der form:
<a href="index.php?page=nameofpage&locale=en_EN">link</a>
Was ist der beste Weg, dies zu erreichen mit mod-rewrite?
Ich finde es besonders schwierig zu erreichen:
- die Kombination beider Parameter, Seite und
Gebietsschema - Drehen ISO-locales De_de en in der URL
- Wie soll ich schreiben-links? mit dem Ergebnis-URL oder den index.php?Seite...
controller-Schema?
BEARBEITEN:
Ich werde verrückt! Ich kann nicht damit es funktioniert!! Fühle mich so blöd... aber Könnte mir jemand helfen mit dem genauen .htaccess-Datei muss ich ziehen diese aus? Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
mod_rewrite ist ein unglaublich Komplexes Biest. Dies sollte erhalten Sie begonnen, aber! Einfach Lesen, auf die Dokumentation und spielen Sie mit ihm. Sie bekommen den Dreh bald genug!
Edit: so kopieren Sie bitte und fügen Sie diesen in eine
.htaccess
Datei..htaccess
- Datei.EDIT: ich ging durch und testeten diese auf einem meiner Server. Dies funktioniert gut für mich:
Diese bekommt man auf dem besten Weg dorthin, aber es nicht tun, die locale übersetzung (en => de_de), es liefert die locale, um die PHP-Skript. Mit mod_rewrite würde ich empfehlen RewriteMap; jedoch, wenn Sie nur Zugriff haben .htaccess (wie auf einem shared host), können Sie nicht verwenden RewriteMap.
Also dann, zu erreichen, die locale übersetzung, ich glaube, Sie wäre am besten aus, tut es auf der PHP-Seite. Entweder Sie verwenden einen Rahmen unten aufgeführt, oder es eben selber tun.
In den Fall, Sie haben Zugang zu dem virtual-host-Konfiguration, würden Sie machen eine text-Datei wie:
Wenn die Datei wurde in /path/to/localemap.txt wärst du:
In diesem Fall de_de wenn nichts gefunden wird in der Karte.
Hoffe, das hilft!
Wenn Sie nur mit .htaccess, dann mod_rewrite wird einfach tun, was Sie wollen.
Würden Sie wahrscheinlich wollen, zu schauen RewriteMap für Ihre Kategorien oder locale, obwohl Sie könnte nur greifen, dass ein Teil der URL, und verwenden Sie es als parameter direkt. Hier ein Beispiel zum Einstieg:
Würden Sie wirklich wollen, um einzugrenzen, der reguläre Ausdrücke verwendet, um Sie spezifischer auf Ihre unterstützte Gebietsschemas und Kategorien, aber ich denke, es ist eine anständige Ausgangspunkt.
Anderen PHP-frameworks, insbesondere diejenigen, die konzentrierte sich auf MVC, auch eine ähnliche URL-routing-Funktionalität. Beispiele:
index.php
aus der url, und damit auch die url wird nicht "sauber". Ohne Rahmen kann das für Sie tun.