2016-05-03 15 views
0

複数のクエリ文字列パラメータを含むURLをフォルダー構造のURLに入れようとしましたが、内部サーバーエラーが500件発生しています。htaccess書き換えルールで内部サーバーエラーが発生しました

私は出力

RewriteCond %{QUERY_STRING} !^(PY=.*)$ [NC] 
RewriteCond %{QUERY_STRING} !^(PF=.*)$ [NC] 
RewriteCond %{QUERY_STRING} !^(MKT=.*)$ [NC] 
RewriteRule %3.fivestarprofessional.com/%1/%2/index.html 
を作成するためのパラメータとのRewriteRuleをキャプチャするために3つの RewriteCond文を作成し、私が必要私の先のURLが delaware.fivestarprofessional.com/16/wm/index.html

として書か

www.fivestarprofessional.com/ag?PY=16&PF=wm&MKT=Delaware のように私の入ってくるURLが見えます

ご協力いただければ幸いです。

+1

ログはあなたのルールがある –

+0

言っているかを確認を使用して最新の状態からのみ取得されます壊れており、シンセシスエラーでいっぱいです。どこから手に入れましたか? – starkeen

答えて

0

することは、この方法を試してください。

RewriteCond "%{QUERY_STRING}" "^PY=([^&]+).*&PF=([^&]+).*&MKT=([^&]+)" [NC] 
RewriteRule "www.fivestarprofessional.com/ag" "%3.fivestarprofessional.com/%1/%2/index.html" 

次の問題が修正されました:

  • RewriteRuleRewriteCondへの代わりに、2

  • 引数が同封されていなかった3つの引数を取ります引用符で囲みます。

  • RewriteCondルールに後方参照...

    • は...のみマッチ最後の条件を指す(Apacheのhttpdのドキュメントに記載されている、@anubhavaにより指摘しました)。したがって、ルールを1つにまとめる必要があります。
    • ...パラメータ名とクエリ文字列の完全な剰余を加えたもの
    • ... ^アンカーの使用により、それぞれのulパラメータで始まるクエリ文字列と一致します。
    • パターンは(!接頭辞の使用)と一致しませんでしたときのルールが解雇として...、とにかく空だったでしょう

推奨読書はapache httpd documentationの適切なセクションです。

それが立つように、溶液が

  • クエリ文字列がURLパラメータPY

  • URLはPFPYパラメータれる順番で始まる...と仮定し、MKTはで表示されますクエリ文字列が修正されました。

+0

[R = 301、L]を追加した後、書き換えルールが有効になりました –

+0

フルストリング:RewriteCond "%{QUERY_STRING}" "^ PY =([^&] +)。*&PF =([^&] +) 。*&MKT =([^&] +) "[NC] RewriteRule"/ag "" http://%3.fivestarprofessional.com/%1/%2/index.html "[R = 301、L] –

2

あなたのリダイレクトにこのルールを使用することができます。

RewriteCond %{QUERY_STRING} (?:^|&)PY=([^&]+) [NC] 
RewriteCond %1::%{QUERY_STRING} (.*?)::(?:|.*&)PF=([^&]+) [NC] 
RewriteCond %1/%2::%{QUERY_STRING} (.*?)::(?:|.*&)MKT=([^&]+) 
RewriteRule ^ag/?$ http://%2.fivestarprofessional.com/%1/index.html? [L,NC,NE,R=302] 

%変数が同じ%{QUERY_STRING}

+0

は、1つのRewriteCondでクエリ文字列全体を照合することはできませんか? – starkeen

+0

クエリパラメータは任意の順序で出現する可能性があり、一致することはできません+単一のRewriteCondでキャプチャすることはできません – anubhava

+0

私はそれをテストしています今、私は私のホームページにリダイレクトされているので、私はhtaccessファイルにパラメータを取り除いている別の競合があると思います。 –

関連する問題