2016-04-07 19 views
1

Tek sayfam için birden fazla sorgum var. URL'yi temizlemek için htaccess kullandım ama benzerleri için sadece ilk kural çalışıyor.Rewrite kuralı, benzer bir sayfa için htaccess'te çalışmıyor

RewriteEngine on 
RewriteRule ^([a-zA-Z0-9_-]+)$ eventlist.php?i=$1 # 1st rule works 
RewriteRule ^([a-zA-Z0-9_-]+)$ eventlist.php?c=$1 # 2nd rule doesn't work 

İlk kural bana mükemmel sonuçlar veriyor, ancak ikincisi bana bir sonuç getirmiyor.

+0

Her iki yeniden yazma kuralları aynı regex modeline sahip, ilk kural her şeyi yakalayacaktır. Sorunuzu, her bir kural için dağıtılmasını istediğiniz örnek URL'lerle güncelleyin. –

+0

http: // localhost/10times/eventlist? I = eğitim-eğitimi bu url http: // localhost/10times/eğitim-eğitimine dönüştürülmelidir –

+0

http: // localhost/10times/eventlist? C = india; http: // localhost/10times/india –

cevap

0

Her iki kuralınız da aynı, ikincisi işe yaramaz çünkü ilk zaten URL'yi yeniden yazıyor. Bunun yanı sıra, kuralın kendisi mantık değildir.

aşağıdakileri yapın erecek örnek:?

  • domain.com/123eventlist.php işaret eder i = 123

Eğer ikinci kuralı taşımak istiyorsanız ilk olarak, aşağıdaki gibi olur: aşağıdakiler gerçekleşir:

  • domain.com/123işaret eder eventlist.php? C = 123

tek sen EventList getirilen wich nasıl anlarım?

bir çalışma ve daha mantık çözüm olacaktır:? domain.com/i-123eventlist.php i = 123 işaret eder

RewriteEngine on 
RewriteRule ^i-([a-zA-Z0-9_-]+)$ eventlist.php?i=$1 
RewriteRule ^c-([a-zA-Z0-9_-]+)$ eventlist.php?c=$1 

Bu şekilde. Bu sadece bir örnektir, sen domain.com/event-123/

Edit gibi bir şey kullanmanın daha iyi olacağını edilir: yorumunuza

dayanarak, yalnızca bir URL tutmak istiyorum ve onu bir ülke ya da endüstriye yönlendirin. $_GET['ic'] bir ülke veya endüstri ise

PHP dosyasında
RewriteEngine on 
RewriteRule ^([a-zA-Z0-9_-]+)$ eventlist.php?ic=$1 

, veritabanı/verileri kontrol etmelidir: Bu, durumda yapılacak wat olduğunu. Çekinizin sonucuna göre gerekli olan etkinlikleri görüntüleyebilirsiniz. Bu durumda gerçekten çok önemli: her endüstri ya da ülkenin benzersiz olması gerektiğini unutmayın.

+0

'a dönüştürülmem gerekirse, ben burada sektörü temsil ediyorum ve c burada ülkeyi temsil ediyor. Sayfa etkinlik listesi, talep edildiğinde verileri sektöre göre görüntülemeli ve aynı sayfa etkinlik listesi, talep edildiğinde ülkeye göre verileri görüntülemelidir. En iyi çözüm ne olurdu –

+0

Bu benim cevabımda açıkladığım şeydi. Bunu daha basit açıklamaya çalışacağım. Cevabımı doğrudan güncelleştiririm, sadece bir saniye. – Boratzan

+0

ama i 'den farklı sonuçlar $ _GET [' i ']' den geliyor ve $ _GET ['c'] 'den geliyorsa c için farklıdır, bu yüzden hala bu durumda çalışacaktır –