2009-07-10 14 views
5

Ich entwickle eine Website mit 3 Seiten (Home, page2, page3) ... auf der zweiten Seite gibt es eine Navigationsleiste mit 4 Elementen (subpage1, subpage2, ...), die ich ersetze der Inhalt der Seite 2 mit URL-Variablen! Mit anderen Worten, das zweite Element der Navigationsleiste in page2 Punkten:Warum funktioniert diese RewriteRule nicht?

http://localhost/uk/page2/index.php?pg=subpage2 

den Punkt 3 Punkt:

http://localhost/uk/page2/index.php?pg=subpage3 

Nun würde Ich mag mehr freundliche URLs über .htaccess nutzen zu können!

Ich habe dies geschrieben:

RewriteEngine On 
RewriteRule /uk/page2/(.*)/$ /uk/page2/index.php?pg=$1 

im .htaccess in der Wurzel gelegt!

Funktioniert aber nicht! Bitte helfen !!!

RewriteEngine On 
RewriteRule /uk/page2/(.*)/$ /uk/page2/index.php?pg=$1 

dazu:

Antwort

9

Wenn Sie verwenden .htaccess Sie die führenden Schrägstrich nicht haben: dieses

RewriteEngine On 
RewriteRule ^uk/page2/(.*)/$ /uk/page2/index.php?pg=$1 
+0

Danke an Ihre Antwort! Auch damit funktioniert das Neuschreiben nicht !!! –

+0

Wenn Sie sagen, dass es nicht funktioniert, was genau passiert? – Greg

+0

Versuchen Sie, etwas Müll in den .htaccess zu bringen - Sie sollten 500 Server Error bekommen. Wenn Sie dies nicht tun, wird Ihr .htaccess nicht geladen – Greg

0

Es kann der Schrägstrich am Ende sein, so ändern :

RewriteEngine On 
RewriteRule ^(.*)uk/page2(/?)(.*)$ /uk/page2/index.php?pg=$3 

Eine andere Sache, sollten Sie prüfen, dass Sie AllowOverride auf alle in der httpd.conf gesetzt, in statt keiner. Wenn es auf None gesetzt ist, ist es nicht erlaubt, etwas mit .htaccess zu tun.

2

G'day,

Ich würde vorschlagen, die RewriteLog Konfigurationsoption auf einem hohen Niveau ermöglicht zu prüfen, was unter der Decke tatsächlich passiert.

Has AllowOverides been enabled?</obvious> (-: 

Scheint, wie Sie kein Glück

mit .htaccess

Unbelievably mod_rewrite bietet pro-Verzeichniskontext URL-Manipulationen in, dh innerhalb von .htaccess-Dateien, obwohl diese eine sehr lange Zeit erreicht werden nachdem die URLs in Dateinamen übersetzt wurden. Das muss so sein, weil .htaccess Dateien im Dateisystem existieren, also hat die Verarbeitung dieses Stadium bereits erreicht. Mit anderen Worten: Entsprechend den API-Phasen zu diesem Zeitpunkt ist es für URL-Manipulationen zu spät. - Apache mod_rewrite doc.s (Hervorhebung meins)

Verwandte Themen