2009-02-17 26 views
7

aslında URL:PHP Rewrite Kuralları

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

ama ben yeniden yazma kuralları hiçbir deneyime sahip

http://site.com/iPhone 

ile aynı elde etmek mümkün olmak istiyorum, Bunu nasıl kurabilirim?

çözüm çalıştı ancak yeni URL adres çubuğunda görüntülenir. Ben sayfasındaki konumu bu mümkün mü

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

gösterilecek değiştirmeden

http://site.com/iPhone

sanki görünecek şekilde Bunu ayarlamak mümkün olurdu düşünce? Teşekkürler.

RewriteEngine on 
RewriteRule /(.*) /search.php?search=$1 

Kontrol de:

cevap

10

.htaccess adında bir dosya oluşturun Web sitenizin kökünde ve bunu içine koyun.

RewriteEngine on 
Options +FollowSymlinks 
RewriteBase/

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

Hile yapmalılar.

Ben bunu biraz daha spesifik, belki senin url arama dizinin kullanıcıyı gerektirir yapmak ancak öneririm. Bu sayede örneğin bize ya bir temel ana sayfasıyla ilgili olarak yönlendirildi arnt Normal sayfaları olması için yapar

RewriteEngine on 
Options +FollowSymlinks 
RewriteBase/

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

gibi yerine mysite.com/IPhone kullanımı mysite.com/search/IPhone ör çalışacak olan. Chris söylediği gibi

, bu bunu yapar PHP ancak Apache değildir ve o barındırma kurulum güvenebilirsiniz çalışıp çalışmadığını.

3

Rewrite kuralları ben farkındayım kadarıyla PHP parçası değildir, ancak Apaçi (özellikle mod_rewrite) veya kullandığınız ne olursa olsun sunucusu. Apache için, .htaccess adlı bir dosya olması sunucuda gerekir ve bunun gibi bir şey koymak:

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

^(\w+)/?$ düzenli ifadedir - 1 veya daha fazla karakterden oluşan herhangi bir kelimeyle eşleşir, belki / izledi . Yani site.com/iPhone'u site.com/index.php?search=iPhone içine değiştirir. Doğru mu?