2016-09-26 9 views
1

にクエリ文字列を書き換える:htaccessファイル:私は次のクエリ文字列でドメインを持ってパス

http://example.com/?taxo=question&cata=foo&catb=bar&catc=more 

私の目的はそうのような各パラメータの値に基づいてパスに?taxo=後、このクエリ文字列を変換することです: .htaccessを使用して

http://example.com/questions/cata/foo/catb/bar/catc/more/ 

が、これは私が試したものです:

RewriteCond %{QUERY_STRING} 
RewriteRule ^taxo=(.*)&(.*)=(.*)&(.*)=(.*)&(.*)=(.*)$ $1/$2/$3/$4/$5/$6/$7 [L,R=301] 

しかし、それは私のためには機能しません。条件が満たされていないので、RewriteRule行でどこが間違っているのか理解しようとしています。

答えて

1

クエリ文字列をRewriteRuleに一致させることはできません。あなたは、クエリ文字列から一致し、キャプチャ値するRewriteCondQUERY_STRING変数を使用する必要があります:あなたが必要となります

RewriteEngine On 

RewriteCond %{QUERY_STRING} ^taxo=([^&]+)&([^=]+)=([^&]+)&([^=]+)=([^&]+)&([^=]+)=(.*)$ [NC] 
RewriteRule ^/?$ /%1/%2/%3/%4/%5/%6/%7? [L,R=301] 
  • 注意RewriteCondでキャプチャ値の後方参照用%N構文を使用します。
  • ?は、ターゲットURIの最後に、前のクエリ文字列を取り除くことです。
関連する問題