2017-01-31 2 views
0

Man könnte denken, dass ich die Antwort auf S/O leicht finden könnte, aber ich habe alles versucht und nach ein paar frustrierenden Stunden gebe ich auf zu sehen, was die echten Experten denken.Mod Rewrite (SEO Friendly URLs)

Ich bin "sicher" das kann mit Mod Neuschreiben erfolgen, aber ich werde auf Sie verzichten.

Problem: Ich bin versucht, eine URL wie folgt zu drehen ...

http://domain.com/new-cars/state.php?stateCode=al 

In diesem bei mindestens ...

http://domain.com/new-cars/al-new-cars 

Obwohl, im Idealfall würde ich es bekommen um so auszusehen (ja, ich bin bereit, etwas Code neu zu schreiben, um den vollen Zustandsnamen als die Variable $ stateCode zu verwenden, um es einfacher zu machen!) ...

Letztlich ist der Plan der Lage sein, zu verwenden, URLs in Links wie ...

http://domain.com/new-cars/alabama-new-cars 

Und hat .htaccess nimmt Auto assoziiert diese SEO-freundliche URL mit der dynamischen Version und die Seite korrekt anzuzeigen.

Wie auch immer, ich bin nicht in der Lage, herauszufinden, wie ich das machen kann, wie ich es brauche.

Hier ist, was ich versucht habe.

Options +FollowSymlinks 
 

 
    RewriteEngine on 
 
    RewriteBase/
 

 
    RewriteCond %{REQUEST_FILENAME} !-f 
 
    RewriteCond %{REQUEST_FILENAME} !-d 
 

 
    RewriteRule ^new-cars/([^-]*)-new-cars/$ /new-cars/state.php?stateCode=$1 [L,QSA,NC]

Und verschiedene Varianten, die ich habe 2 verschiedene mod Rewrite-Generatoren erstellt mit und verschiedene Antworten auf andere Fragen der Menschen.

Absolut nichts funktioniert.

erwarte ich, wenn ich zu

gehen
http://domain.com/new-cars/state.php?stateCode=AL 

Dass es die URL zu

http://domain.com/new-cars/AL-new-cars 

umschreibt ... aber es funktioniert nicht. Stattdessen bleibt es genau die gleiche dynamische URL, die ich eingegeben habe. Wenn ich zu der "gewünschten" Umschreibe-URL gehe, erhalte ich einen 404-Fehler, der sagt, dass die Seite nicht existiert.

Was mache ich falsch?

Ich dachte, vielleicht sind meine .htaccess-Privilegien nicht richtig eingestellt, aber ich kann eine 301-Weiterleitung durch .htaccess ziemlich leicht tun, also ist es nicht so.

Vielleicht kann hier jemand helfen. Ich habe so viele Permutationen versucht und mich sogar für die grundlegendste Neufassung entschieden, nur um zu sehen, ob ich es zur Arbeit bringen könnte - aber nichts.

Jede Hilfe wird geschätzt!

Antwort

1

Sie verwenden können:

Options +FollowSymlinks 

RewriteEngine on 
RewriteBase/

# external redirect from actual URL to pretty one 
RewriteCond %{THE_REQUEST} \s/+new-cars/state\.php\?stateCode=([^\s&]+) [NC] 
RewriteRule^/new-cars/%1-new-cars? [R=301,L,NE] 

# internal forward from pretty URL to actual one 
RewriteRule ^new-cars/([^-]*)-new-cars/?$ /new-cars/state.php?stateCode=$1 [L,QSA,NC] 
+1

OMG, ich danke Ihnen so sehr! – Trapp