2016-08-18 15 views
1

をリダイレクト&美化は、ここで私が達成しようとしているものです:.htaccessのクエリ文字列

ブラウザ要求:URLの静的な(いつも同じ)の部分がwebApp/ あるexample.com/webApp/controller/action/?param1=param1value

  • URLの動的部分はcontroller/action/?param1=param1valueです。通常は、およびQUERY_STRING(部品の量を変化させることからなる経路)REQUEST_URIから成り、それは、例えば、何であってもよい。
    • site/index/?page=2
    • books/index/?page=2&sort=name
    • users/list
    • foo/bar
    • user/profile/posts/?page=2
  • 上記のURLは、 .htaccessの後にこのようになります(サーバが受信するもの):
    • index.php?path=site/index/page/2
    • index.php?path=books/index/page/2/sort/name
    • index.php?path=users/list
    • index.php?path=foo/bar
    • index.php?path=user/profile/posts/page/2
  • ユーザーがindex.phpなしのURLを見ながらブラウザの一部:
    • site/index/page/2
    • books/index/page/2/sort/name
    • users/list
    • foo/bar
    • user/profile/posts/page/2

基本的に私はすべての?とを置き換えることにより、URLのQUERY_STRING部分をきれいにしたいです文字を/に変更し、REQUEST_URIに動的に追加します。

私はこのトピックに関する多くの検索を行ってきました。残念なことに、最も近いマッチはハードコードされたQUERY_STRINGパラメータの例がパスになっていました。代わりに、すべてのQUERY_STRINGの部分(もしあれば)をパスに動的に変換したいと思います。

私の現在の の.htaccessファイルの内容は以下の通りです

:上記で説明したように

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.png|\.jpg|\.gif|\.jpeg|\.bmp|\.css|\.js)$ 
RewriteRule ^([^?]*)$ index.php?path=$1 [NC,L,QSA] 

唯一欠けている部分は、QUERY_STRINGを掃除されています。また、リクエストURIが上記のコード(拡張機能のリスト)にリストされているファイルである場合、index.phpで処理されません。

答えて

0

Iは、部分的に以下の.htaccessのコードを使用して問題を解決していない:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.png|\.jpg|\.gif|\.jpeg|\.bmp|\.css|\.js)$ 

RewriteCond %{QUERY_STRING} ^(.*)=(.*) [OR] 
RewriteRule ^([^?]*)$ index.php?path=$1&%1=%2 [NC,L] 
  • QUERY_STRINGはもはやURL(RewriteRuleから除去QSA)の末尾に添付されています。
  • QUERY_STRINGは、にトークン%1%2を含めることによって使用されるRewriteCond %{QUERY_STRING} ^(.*)=(.*) [OR]以降の条件と一致します。
  • このソリューションはありません URLからGETパラメータを削除しますが、それらがpathパラメータに終わらないことを確認します。
    • 代わりに、クエリ文字列が正常に動作し、それが今&の代わり?から始まるので、(独自のGETパラメータのエントリを作成します。?が既にパラメータに使用されてpath。最初のポストリードで説明
    • 状況「最初のパラメータ文字?」が2回使用されているため、クエリ文字列が不正な形式である場合に。少なくとも、この私の仮定..
関連する問題