QUERY_STRING htaccess RedirectMatch kullanmak nasıl?

3 Cevap php

im "search.php?q=somethinghere" "search/somethinghere/" yönlendirmek için çalışıyoruz ama bunu yapamam! Ben "<form action="search/" method="get" name="search">" bu gibi ancak url "search/?q=somethinghere" gider formu göndermek için çalışıyorum

RedirectMatch 301 ^/search.php?q=(.*)$ http://domain.com/search/ 1 $ / Bu da çalışmıyor. nedir sorun?

Ben istemiyorum? "Q =" URL.

3 Cevap

Eğer yoksa sorun üzerinde bir yazım hatası yeniden yönlendirmek için çalışıyoruz olmasıdır:

^/search.php?q=(.*)$

ancak alıyorsanız URL:

search/?q=somethinghere

(Fark, yönlendirme kuralı. Php)

Sen şu yönlendirme kuralı yerine kullanarak denemek isteyebilirsiniz:

RedirectMatch 301 ^/search?q=(.*)$ http://domain.com/search/$1/

Bu çok temiz ve istemci tarafında bunu yapmak için daha hızlı olacaktır. Javascript göndermek formda search/query URL oluşturmak mı - size ekstra bir isteği kurtaracak.

Ancak, sunucu tarafı ile bunu yapmak için yönlendirir, size mod_rewrite RewriteCond ve QUERY_STRING kaynağı olarak kullanabileceğiniz:

RewriteCond %{QUERY_STRING}  \bq=([^&]*)$
RewriteRule ^search.php$ /search/%1 [R=301]

. http://corz.org/serv/tricks/htaccess2.php#cooldenial: Ben htaccess sorularım var zaman, ben her zaman ilk bu sitede bir göz atın

Site örnekler ile. Htaccess dosyaları farklı şeyler yapmak için açıklamalar bir sürü sağlar. Bu siteye göre gibi bir şey deneyebilirsiniz:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^search/([^/]+) http://domain.com/search.php?q=$1 [NC]

. Ancak, bir htaccess gurusu değilim - böylece onunla keman gerekebilir.