2009-02-17 8 views
7

Die tatsächlich URL, die meine app verwendet wird:PHP Umschreibenregeln

http://site.com/search.php?search=iPhone 

aber ich würde es möglich sein, wie das gleiche mit

http://site.com/iPhone 

ich keine Erfahrung mit der Rewrite-Regeln zu erreichen, Wie kann ich das einrichten?

Die Lösung hat funktioniert, aber die neue URL wird in der Adressleiste angezeigt. Ich dachte, es wäre möglich gewesen, dies einzurichten, so dass es scheint, als wenn die Seite Lage ist

http://site.com/iPhone

ohne Änderung

http://site.com/search.php?search=iPhone 

Ist das möglich angezeigt werden? Vielen Dank.

Antwort

10

Erstellen Sie eine Datei .htaccess genannt in der Wurzel Ihrer Website und legen Sie dies hinein.

RewriteEngine on 
Options +FollowSymlinks 
RewriteBase/

RewriteRule ^(.*) search.php?search=$1 [R] 

Sollte der Trick tun.

Ich würde jedoch vorschlagen, dass Sie es ein wenig konkreter machen, so benötigen Sie möglicherweise den Benutzer eines Suchverzeichnisses in Ihrer URL. zB statt mysite.com/IPhone Verwendung mysite.com/search/IPhone, die funktionieren würde, wie

RewriteEngine on 
Options +FollowSymlinks 
RewriteBase/

RewriteRule ^search/(.*) search.php?search=$1 [R] 

Dies macht es einfacher, normale Seiten zu haben, die umgeleitet Arnt, wie über uns oder eine grundlegende Homepage.

Wie Chris sagt, dies ist nicht PHP, sondern Apache, der dies tut, und ob es funktioniert, kann von Ihrem Hosting-Setup abhängen.

3

Rewrite Regeln sind nicht Teil von PHP, soweit ich weiß, aber Apache (speziell mod_rewrite) oder welchen Server Sie verwenden. Für Apache, müssen Sie auf dem Server eine Datei .htaccess genannt haben, und in ihr so ​​etwas wie:

RewriteEngine on 
RewriteRule ^(\w+)/?$ /index.php?search=$1 

^(\w+)/?$ ist ein regulärer Ausdruck - sie paßt zu jedem Wort von 1 oder mehr Zeichen, gefolgt von einem / vielleicht . So ändert sich site.com/iPhone in site.com/index.php?search=iPhone. Stimmt das nicht?