をリダイレクト&美化は、ここで私が達成しようとしているものです:.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
の部分(もしあれば)をパスに動的に変換したいと思います。
:上記で説明したように
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
で処理されません。