2009-06-04 14 views
1

私はmod_rewriteの初心者です。あなたがそれを投げる変数の数と数を扱う書き換えスクリプトを作ることができるかどうか疑問に思っていました。任意の数の変数のmod_rewrite

例:

www.krisnicolaou.com/5/asc/25/first_name

から

www.krisnicolaou.com/index.php?id=5&sort=asc&limit=25&param=first_name

...しかし、あなたはまた、別のページにこれらの変数を渡すことができますし、それはその1つのスクリプトで動作します:

www.krisnicolaou.com/index.php?page=view&action=add

~

www.krisnicolaou.com/view/add/

私は基本的に、私は最後までに追加して、常に.htaccessファイルを変更することはできませんどのように多くのパラメータとして制限されることを望んでいません。

ありがとうございます。

+0

最初のフォーム( '/index.php?page = view&action = add')のリクエストされたURLを外部から2番目のフォーム('/view/add/')にリダイレクトしますか?あるいは逆の方向を望んでいますか? – Gumbo

答えて

1

と同様のものthis

+0

Torezとgreat_llamaだからあなたのうちの1人はそれにリンクしていて、もう1人はリンクを回答として受け入れましたが、元の回答がアップヴォートの価値があるとは思わなかったのですか?愛はどこだ? – bmb

1

通常、「きれいな」URLを取得してパラメータに変換したいと考えています。あなたが求めているのは反対です。テスト済みルールセットはです。

RewriteEngine on 

RewriteCond %{QUERY_STRING} !^$ 
RewriteCond %{QUERY_STRING} ^([^=]*)=([^&]*)(&.*)? 
RewriteRule ^(.*/)?([^/]+) $1%2/$2?%3 [L] 

これはパラメータがある場合に実行され、各パラメータに対して、URLに追加してパラメータリストから削除します。 [N]はパラメータがなくなるまで実行します。テストするには

、私は次の構造を作成します。

view 
view/add 
view/add/index.htm 

私は.htaccessファイルに上記の規則を置きます。

ノーマルテスト: http://www.theeggeadventure.com/2009/index.htm?page=view&action=add

追加のparams(404)テスト http://www.theeggeadventure.com/2009/index.htm?page=view&action=add&foo=bar URLの/2009/view/add/bar/index.htmは、このサーバー上に見つかりませんでした。

+1

お返事ありがとうございますが、なんらかの理由で動作していません。どんな考え?そして、「書き換えエンジンをオンにしましたか?」と言ってはいけません:) ありがとう – Torez

関連する問題