2011-01-05 8 views
0

Ich kann nicht mein Problem mit diesem wirklich einfach .htaccess Datei zu finden scheinen:einmal mehr: .htaccess - RewriteRules arbeiten, aber Browser-Adressleiste angezeigt wird voll (unfreundlichen) URL

Options -Indexes 
Options +FollowSymLinks 
RewriteEngine on 
RewriteBase /d/ 
`#`drupal style url rewriting 
RewriteRule ^([^.]*)$ index.php?path=$1 [L] 

Es funktioniert wie vorgesehen für alles außer der Root-URL ohne Schrägstrich. So schreibt sie und übergibt die versteckten get Abfragezeichenfolgeflag auf meine Seiten für localhost/d/x/y/z als ?path=x/y/z und localhost/d/ als ?path= (blank) aber localhost/d funktioniert, aber erscheint nun in der Adressleiste als dieses hässliche Monster:

http://localhost/d/?path=/Users/audiozoom/Documents/webroot/d 

Was könnte das Problem sein?

Antwort

0

Durch Hinzufügen einer bedingten Regel an der Spitze behoben.

RewriteCond %{REQUEST_URI} /d$

RewriteRule ^.*$ index.php [L]

Aber Ich mag es gar nicht dort jetzt, da ich die Basisordner zweimal in meinem .htaccess haben. Vielleicht findet jemand eine bessere Lösung.

0

Versuchen Sie, [QSA] an das Ende Ihrer Regel hinzuzufügen. Dadurch wird die gesamte Abfragezeichenfolge ruhig übergeben.

+0

hat nicht funktioniert. Diese ganze Querystring ist auch seltsam. normalerweise zeigt es alles nach dem Pfad zu meinem Site-Root an. –

0

Stellen Sie sicher, dass Ihr PHP-Code die Anfrage nicht umleitet. Ihre Rewrite-Regel lautet index.php?path=, aber die angezeigte URL ist ?path=. Dies kann durch eine Umleitung verursacht werden.

+0

Danke, aber ich habe einen Test-Ordner mit nur 2 Dateien: .htaccess mit nur dem obigen Code und index.php wo die einzige Zeile ist "Echo" Pfad ist: ". $ _ GET ['Pfad'];', um sicherzustellen dass dein Vorschlag nicht der Fall ist. –

Verwandte Themen