2016-04-02 14 views
0

Meine Frage ist, wie die URL in der RewriteRule angezeigt wird, wenn ich auf den Link klicke (domain.com/?brandID=1 & name = Beretta).htaccess rewriteRule zeigt keine neue URL an

Meine Tests lassen mich glauben, dass es etwas mit index.php zu tun haben könnte, aber vielleicht nicht. Mein Skript wird ausgelöst, indem die Variable GET gesetzt wird, und fragt die Datenbank ab und schließt die Seite ein, auf der die Ergebnisse (und die "hässliche" URL) angezeigt werden.

Hier ist der .htaccess-Code:

# Rewrite for ?brandID=1&name=Name 
RewriteRule ^pistol-brand/([0-9]+)/([0-9a-zA-Z_-]+) ?brandID=$1&name=$2 [NC,L] 

Ich möchte domain.com/?brandID=1 & name = Beretta mit domain.com/pistol-brand/1/beretta

Die ersetzen Code oben zeigt die "hässliche" URL an, aber wenn ich die URL zu dem ändere, was die RewriteRule angibt (domain.com/pistol-brand/1/beretta), funktioniert die Seite.

Wie bekomme ich die "neue" URL angezeigt, wenn der Link angeklickt wird?

Vielen Dank für Ihre Hilfe.

+0

'? Brandid = $ 1 name = $ 2' ist keine gültige URL zu umleiten, können Sie nicht auf die neu zu schreiben. – arkascha

+0

Ich scheiterte auch mit: \t RewriteRule^Pistole-Marke/([0-9] +)/([0-9a-zA-Z _-] +) index.php? MarkeID = $ 1 & Name = $ 2 [NC, L] – JimB814

+0

Ich bin mir nicht sicher, ob Sie verstanden haben, wie URL-Umschreiben funktioniert. Versteh das nicht falsch! Ich versuche nur, hier viel Frust zu vermeiden. Die obige Regel wird sicherlich nichts tun, wenn Sie auf einen solchen Link klicken: "http: // domain.com/? BrandID = 1 & name = Beretta". Sie müssen stattdessen einen solchen Link haben und klicken Sie auf: http: // domain.com/pistole-marke/1/beretta. In der Tat sollte das Umschreiben der URL _internally_ diese Anfrage neu schreiben, damit Ihre Skripte sie verarbeiten können. Es ist also nicht nötig, die im Browser angezeigte URL zu "ändern", da sie bereits den "hübschen" Link anzeigt. – arkascha

Antwort

0

Sie benötigen einen mehr das hässliche URL sef Format

##1)Redirect /?brandID=foo&name=bar to //pistol-brand/foo/bar## 
RewriteCond %{THE_REQUEST} /\?brandID=([^&]+)&name=([^\s&]+) [NC] 
RewriteRule^/pistol-brand/%1/%2? [L,R] 
##2)Rewrite /pistol-brand/foo/bar to /?brandID=foo&name=bar## 
    RewriteRule ^pistol-brand/([0-9]+)/([0-9a-zA-Z_-]+) ?brandID=$1&name=$2 [NC,L] 
+0

Vielen Dank, dass Sie sich die Zeit genommen haben, diese Lösung bereitzustellen. Es klappt. Ich hoffe, herauszufinden, wie und warum. Vielen Dank. – JimB814