2016-07-11 7 views
1

ich das folgende Beispiel-URL habenRewriteRule zu intensivieren einer Ebene

http://myWeb.com/for-sale/whateverCategory/item-title/55 

ich dies noch auflösen müssen, um:

http://myWeb.com/pages/for-sale.html?name=test-title&item_id=55 

Das ist, was ich versuche aber es funktioniert nicht:

RewriteRule ^for-sale/([^/.]*)/?$ /pages/for-sale.html?name=$1&item_id=$2 [L,QSA] 

Wenn ich die 10 Ebene hinzufügen, funktioniert die URL z. B.

http://myWeb.com/pages/for-sale/childCat/item-title/55 

Aber ich will es ohne die /pages/

Irgendwelche Ideen, wo ich falsch gehe?

+0

Wo ist die .htaccess liegt – starkeen

+0

Web root, selbe Ebene wie '/ pages /' Ordner –

+0

Wenn Sie die URL ohne '/ pages /' segment wollen, verwenden Sie die Regel in '/ root/.htaccess' anstatt sie in'/pages/.htaccess' zu verwenden – starkeen

Antwort

1

Ihre Regel erfasst die Werte $1 und $2 nicht richtig in der Regex.

können Sie verwenden:

RewriteRule ^for-sale/[^/]+/([\w-]+)/([\w-]+)/?$ /pages/for-sale.html?name=$1&item_id=$2 [L,QSA,NC] 
+0

Danke aber funktioniert nur, wenn ich '/ pages /' in der URL z. 'http: // myWeb.com/pages/for-sale/childCat/item-titel/55' - Ich möchte idealerweise' http: // myWeb.com/for-sale/childCat/artikel-titel/55' –

+0

Dort ist ein 'pages' -Verzeichnis ja, die unformatierte URL ist' http: //myWeb.com/pages/for-sale.html? name = test-title & item_id = 55' –

+0

Meinst du das im 'pages'-Ordner? Wenn nicht, wie kann ich darüber gehen? Du meinst ein zufälliges 'dir' in' pages' einzufügen und es dort zu platzieren? –