2011-02-11 23 views
2

PHPで処理されたクリーンURLのhtaccessを作成しましたが、私の検索オプションでは、youtubeのような '?q = searchquery'が必要です。きれいな "汚い" URL

RewriteEngine on 
RewriteCond %{REQUEST_URI} !-f 
RewriteCond %{REQUEST_URI} !-d 
RewriteRule ^(.*)/$ index.php?d=$1 [L] 

私のhtaccessのだし、すべてのURLのために動作しますが、「http://www.website.com/search/?q=searchquery」しないこと。今私はこれらのような他の書き換えを試みました

RewriteRule ^(.*)/\?(.*)/$ index.php?d=$1&$2 

RewriteRule ^(.*)/\?q=(.*)/$ index.php?d=$1&q=$2 

彼らは働かない。

また、[R]フラグを使用してURI全体を表示しましたが、疑問符のすべてが表示されません。 URLを使用して

RewriteRule ^(.*)/$ index.php?d=$1 [L] 

http://www.website.com/search/?q=searchqueryディスプレイ:http://www.website.com/search/

編集: だから私は両方どのように行うのですか? \ O/

+3

クリーンURLと汚れたURLとはなんですか? – BoltClock

+0

清潔なURL:http://www.website.com/product/product-name/ 汚れたURL:http://www.website.com/products.php?p=product-name 同じことをしますか –

+2

どこかに質問がありますか? –

答えて

5

だけQSA(クエリ文字列追加)フラグを使用します。URLがクエリ文字列で呼び出された場合

RewriteRule ^(.*)/$ index.php?d=$1 [L,QSA] 

を、クエリ文字列は、生成されたURLに付加されます。

PS:リライトルール内のクエリ文字列を一致させることはできません。ルールが一致する前に、クエリ文字列が削除されます。

+0

それは動作します!ありがとうございます –

+0

@ティム:それはあなたが探していた答えなら、それの隣にある透明な緑のダニをクリックしてください;) – NikiC

+0

私は約100万回試みましたが、私は待たなければならないと言います。私はそれが動作するまで必ずクリックし続けます!ありがとうございます。 –

関連する問題