MOD_REWRITE YARDIM!

3 Cevap php

I want to use mode rewrite to display the following: mydomain.com/Florida/Tampa/ instead of mydomain.com/place.php?state=Florida&city=Tampa

I've akready done this: (since I think it might make a difference!) mydomain.com/[name].html instead of mydomain.com/profile?user=[name]

İşte kodu!

Options +FollowSymLinks  
Options +Indexes 
RewriteEngine On 

RewriteBase /  
RewriteCond %{SCRIPT_FILENAME}! !-f  
RewriteCond %{SCRIPT_FILENAME}! !-d  
RewriteRule (.*).html profile.php?user=$1 [QSA.L]

3 Cevap

Mümkün olduğunca desenler gibi spesifik yapmak gerekir. Yani bu kuralları deneyin:

# stop rewriting process if request can be mapped to file or directory
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

# get user pages
RewriteRule ^([^/]+)\.html$ profile.php?user=$1 [L,QSA]

# get paces
RewriteRule ^([^/]+)/([^/]+)/$ place.php?state=$1&city=$2 [L,QSA]

İşte [^/]+ (hariç bir veya daha fazla keyfi karakter /) kullanabilirsiniz. Eğer sadece belirli karakterleri izin vermek istiyorsanız, (örneğin bkz: webdestroya’s proposal) kalıplarınıza bunu yansıtmalıdır.

Ve ayrıca açık URI'lere kullandığınızdan emin olun. Sen kuralları hakkında düşünme önce iyi dövme URI yapısını geliştirmek gerekir. Biliyor musun, Cool URIs don’t change .

Ekle:

RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)/ place.php?state=$1&city=$2 [L,QSA]

i Gumbo versiyonunu koymak ve her şey çalışıyor ama bazen kullanıcı şehirden önce bir devlet seçer ve hemen domain.com / Florida / Tampa çalışıyor ama domain.com / Floria çalışmıyor!