Ben bu htaccess dosyası hakkında yanlış yapıyorum?

1 Cevap php

Birisi bu htaccess kuralları ile sorunun ne olduğunu söyle lütfen?

 RewriteCond %{QUERY_STRING} ^q=(.*)&type=downway1$ [NC]
 RewriteRule ^search\.php$  /search\/%1\/1\/? [R=301,NC,L]

 RewriteCond %{QUERY_STRING} ^q=(.*)&type=(.*)$ [NC]
 RewriteRule ^search\.php$  /search\/%1\/%2\/1\/? [R=301,NC,L]

 RewriteRule search/(.*)/(.*)/$  /search.php?q=$1&page=$2 [L] <-- this and
 RewriteRule search/(.*)/(.*)/(.*)/$  /search.php?q=$1&type=$2&page=$3 [L] <-- this 

Aynı zamanda çalışmıyor. örnek TİPİ = app Q = windows için

Ben güçlü çalışır downway1 tarafından yazın arama ama ben app tip arama yaparsanız Q windows / app olursa sadece pencere. lütfen bana yardım et!

edit: "search.php?q=someterm&page=1" "/search/someterm/1/" ve "search.php?q=someterm&type=sometype&page=1" "/search/sometype/someterm/1/" yönlendirmek için çalışıyoruz im

1 Cevap

Yeniden yazma kuralları sırayla uygulanır. Bu durumda, /search/(.*)/(.*)/$ ilk olarak test edilir ve aslında does maç /search/windows/app/1/, nokta operatörü şeyi maçları nedeniyle, including forward slashes.

Kuralların sırasını değiştirme deneyin veya daha da iyisi, onlara her şeyi, except forward slashes neticesinde gelir, (.*) ([^/]*) değiştirerek bağımsız sipariş yapmak. Bu ilk test /search/windows/app/1/ için başarısız yapacak, böylece apache saniye için hareket edecek.