2017-02-12 4 views
1

ich eine URL www.example.com/print?id=adder
genannt habe ich es will aussehen wie www.example.com/print/adder.htaccess nicht die schmutzige url in saubere url Umwandlung

ich folgende .htacces Code bin mit

RewriteEngine on 

# redirect all requests except only POST 
RewriteCond %{REQUEST_METHOD} !POST 
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.(?:php?)[\s?/] [NC] 
RewriteRule^/%1%2 [R=302,L,NE] 

RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.+?)/?$ $1.php [L] 

RewriteRule ^print/([a-z]+) print.php?id=$1 [NC,L] 

Aber Trotzdem habe ich die URL wie www.example.com/print?id=adder.

Ich verwende wamp 3.0.6(Latest Version), PHP 7.0,10 & Apache 2.4.23. Warum bin ich mit diesem Problem konfrontiert. Warum funktioniert der Code nicht?

+0

ist Ihr .htaccess in/print-Ordnern? – starkeen

+0

Nein, meine .htaccess ist im Stammordner & print ist kein Ordner dessen 'print.php'. Ich habe die .php Erweiterungen ausgeblendet, so dass Sie 'print? Id =' anstelle von 'print.php? Id =' –

+0

"Aber immer noch, ich habe die URL wie ..." - Sie müssen auch die ändern URL in Ihrer Anwendung (das ist was _changes_ die URL) - vermutlich haben Sie das schon gemacht? – MrWhite

Antwort

1

Um Ihre URL zu saubereren Version zu umleiten, stellen diese über die letzten RewriteRule

RewriteCond %{THE_REQUEST} /print/?(?:\.php)?\?id=([^\s&]+) 
RewriteRule^/print/%1? [L,R] 
+0

Ihr Code ändert die URL, aber aufgrund dieses Codes gibt es einen Internal Server Error 500. –

+0

Ihr modifizierter Code akzeptiert @Starkeen nicht. Es konvertiert in saubere URL, aber es zeigt die gleichen 500 Fehler, interne Fehlkonfiguration Fehler –

+0

Akshay, ich glaube nicht, dass Sie den Fehler wegen dieser Regel bekommen. Die Regel ist in Ordnung, ich habe es auf meinem Server getestet. Bitte überprüfen Sie Ihr Fehlerprotokoll für Informationen über den 500error. – starkeen