2017-05-08 2 views
1

Ich habe einige Probleme mit dem Verständnis der URL Rewriting-Regel.Wie schreibe ich den Ordner-Pfad mit RewriteRule Befehl in. Htaccess

Meine URL ist

http://example.com/katalog/selection/book.php 

und ich möchte die URL mit RewriteRule zu

http://example.com/selection 

Code geändert werden:

RewriteEngine On 
RewriteRule ^http://example.com/katalog/selection/book.php$ http://example.com/selection [R=301,L] 

aber ich kann nicht den neuen Zugang Pfad.

+1

RewriteRule stimmt nicht mit vollständigen URLs überein, es stimmt nur mit der Pfadkomponente der URL überein. – CBroe

Antwort

1

Wie CBroe in Kommentaren erwähnt, das RewriteRuleMuster entspricht nur dem URL-Pfad, nicht das Schema + Hostname + Pfad. "Aber ich kann nicht auf den neuen Pfad zugreifen" schlägt vor, dass Sie intern die Anforderung von /selection zu /katalog/selection/book.php umschreiben möchten - das ist das komplette Gegenteil von dem, was Sie versuchen, zu tun. (Obwohl /selection ein schaut etwas zu allgemeine?)

so etwas wie die folgenden Versuchen Sie in Ihrem Stamm .htaccess Datei.

RewriteEngine On 
RewriteRule ^selection$ katalog/selection/book.php [L] 

Die RewriteRuleMuster nicht mit einem Schrägstrich in pro-Verzeichnis .htaccess Dateien starten.

fordern nun die URL /selection und die Anfrage wird intern neu geschrieben sein (sichtbar Web-Adresse ändert sich nicht) in die Datei /katalog/selection/book.php.

Beachten Sie, dass Sie den Browser-Cache vor dem Testen leeren müssen, da 301s vom Browser zwischengespeichert werden.