2016-04-02 14 views
0

Soruma tıklandığında RewriteRule URL'sini nasıl alacağımı soruyorum (domain.com/?brandID=1 & name = Beretta).htaccess rewriteYeni url görüntüleme yok

Benim testler beni o index.php ile ilgili bir şey olabilir inandırmaya, belki de değil. Komut dosyası, ayarlanan GET değişkeni tarafından tetiklenir ve DB'yi sorgular ve sonuçları (ve "çirkin" URL) görüntüleyen sayfayı içerir.

# Rewrite for ?brandID=1&name=Name 
RewriteRule ^pistol-brand/([0-9]+)/([0-9a-zA-Z_-]+) ?brandID=$1&name=$2 [NC,L] 

Ben domain.com/pistol-brand/1/beretta

The ile domain.com/?brandID=1 & name = Beretta değiştirmek istiyor: Burada

.htaccess kodu Yukarıdaki kod, "çirkin" URL'yi görüntüler, ancak URL'yi RewriteRule öğesinin (domain.com/pistol-brand/1/beretta) ne yaptığına değiştirdiğimde, sayfa çalışır.

nasıl bağlantı tıklandığında göstermek için "yeni" url alabilirim? herhangi bir yardım için

teşekkürler.

+0

'? BrandID = $ 1 & ad = $ 2'FC geçerli bir URL değil sef biçimine çirkin url yönlendirmek tane daha lazım, sen buna karşılık yeniden yazamazsınız. – arkascha

+0

Ayrıca kullanılamadı: \t RewriteRule^tabanca-marka/([0-9] +)/([0-9a-zA-Z _-] +) index.php? BrandID = $ 1 & name = $ 2 [NC, L] – JimB814

+0

Url yeniden yazma işleminin nasıl çalıştığını anladığınızdan emin değilim. Bu yanlış anlama! Sadece burada bir çok hayal kırıklığını önlemeye çalışıyorum. Yukarıdaki kural kesinlikle böyle bir bağlantıyı tıklarsanız hiçbir şey yapmayacaktır: 'http: // domain.com/? BrandID = 1 & name = Beretta'. Bunun gibi bir bağlantıya sahip olmanız ve tıklamanız gerekiyor: 'http: // domain.com/tabanca-brand/1/beretta'. Daha sonra, URL'lerin yeniden yazılması, komut dosyalarının işleyebilmesi için bu talebi yeniden yazmalıdır. Bu nedenle, tarayıcıda gösterilen URL’yi "güzel" bağlantıyı gösterdiğinden "değiştirmeye" gerek yoktur. – arkascha

cevap

0

Sen

##1)Redirect /?brandID=foo&name=bar to //pistol-brand/foo/bar## 
RewriteCond %{THE_REQUEST} /\?brandID=([^&]+)&name=([^\s&]+) [NC] 
RewriteRule^/pistol-brand/%1/%2? [L,R] 
##2)Rewrite /pistol-brand/foo/bar to /?brandID=foo&name=bar## 
    RewriteRule ^pistol-brand/([0-9]+)/([0-9a-zA-Z_-]+) ?brandID=$1&name=$2 [NC,L] 
+0

Bu çözümü sağlamak için zaman ayırdığınız için teşekkür ederiz. İşe yarıyor. Nasıl ve neden olduğunu anlamaya çalışıyorum. Teşekkür ederim. – JimB814