2012-03-08 6 views
0

I、次のURLの形式になります。私は書き換えにはどうすればよいのURL

www.example.com/members/admin/projects/?projectid=41 

そして、私は、次の形式に書き換えたい:

www.example.com/avits/projectname/ 

プロジェクト名ユーザーがそれらを作成するときに一意である必要はありません。したがって、同じ名前のプロジェクトが既に存在する場合は、既存の名前をチェックし、プロジェクト名の最後に整数を追加します。例えばexample.project、example.project1、example.project2など

私はプロジェクト名でデータベースを照会するGETリクエストを設定するのはうれしいですが、これらのかなりのURLを設定するには大きな問題があります。

私は、すべての静的コンテンツがApacheのオーバーヘッドなしでNginx経由で提供されることを保証するNginx AdminがインストールされたApacheを使用しています。

nginxの書き換えルールをnginx.confファイルに適用するか、.htaccessファイルの標準書き換えを採用するべきかどうかは、私は完全に混乱しています。

さらに大きな問題を混乱させるために、これはかなり大きなカスタムアプリケーションですが、簡単なブログ機能のためにワードプレスのバックボーンの上に構築されています。

私は3つの方法すべてを全く成功させずに試みました。私はこの問題について多くのことを読んだが、単に何かを得るようには見えない。私はこれが純粋にURLの書き換えに関する完全な理解に欠けていることを確信しています。私のケースではどのタイプの書き換えが当てはまるべきかわからないという事実と結びついて、私は円で回っているだけで何もしていません。

誰でもこの問題を解決し、上記の方法でURLを書き直す方法を説明できますか?

多くのありがとうございます。

答えて

0

すべての非静的ファイルリクエストをApacheにプロキシする場合は、そこに書き換えを行います。バックエンドにリクエストを渡すだけなので、nginxで何もする必要はありません。

あなたが提案している問題は、実際には書き換えではなく、書き換えは最初のURLを受け取り、周りを変更するか、ユーザーを別の場所に移動することです。

実際に必要なのは、プロジェクトIDからプロジェクト名を外挿するロジックです。かなり容易

www.example.com/avits/41/ 

が、あなたはそれを変更するアプリのコード内でその/ 41 /をマッピングすることができますへ/プロジェクト名/ - 理由:

www.example.com/members/admin/projects/?projectid=41 

へ:

たとえば、あなたは書き換えることができますURLの書き換えはできません。

+0

ありがとうございますGareth、あなたが記述しているロジックは、実際に配置されており、問題ではありません。それは純粋に私が苦労している書き換え自体です。 – gordyr

+0

正確な書き換えをしたいのですか?このようなものを試してみてください: 私の例では、上記のように正確に書き直したいのですか?次のようにしてください: 'rewrite ^/members/admin/projects /?projectid = $/avits/$ 1?/ last;' –

関連する問題