2017-04-09 21 views
0

NignxとLEMPスタックにはかなり新しく、きれいなURLを書くのに苦労しています。
は、私が書き直したい:
https://example.com/search/something&1
https://example.com/search.php?query=something&page=1
にどのように私はこれを達成するために進んでいますか?NginxのURL書き換え

+0

あなたが投稿を確認します。あなたのターゲットとリダイレクションのURLはどちらも同じです –

+0

これを 'https:// example.com/search/something&1'から' https://example.com/search.php?query = something&page = 1'に、または反対に –

+0

@SahilGulati私の質問が更新されました:) – CodeWalker

答えて

1

rewrite ^/search/(.*)&(.*)$ /search.php?query=$1&page=$2

私はあなたが後方にそれについて考えていると思います。あなたは/search/something&1ようになり、その後、nginxのは、PHPが理解できるURLクエリパラメータを使用して、通常のリンクにそれらを書き換えますリンクを生成しますあなたのコードでは=>/search.php?query=something&page=1

/search/something&1を書き換えたいです。

+0

これは動作しますが、css&jsファイルのようなすべての外部リソースが読み込まれません。 – CodeWalker

+0

@ CodeWalkerあなたは、この場所〜* \。(?: css | js)$ {}のような別の場所ブロックが必要です。これは、.cssまたは.jsで終わる要求を探し、通常通りにルーティングします。あなたは休憩を使うことができます。後のルールが処理されないようにします。 –

0

これがうまくいくと思います。

([A-Za-z]+)は、1つ以上のすべての小文字または大文字に一致します。

([\d]+)は、1つ以上の数字に一致します。

rewrite /search/([A-Za-z]+)&([\d]+) /search.php?query=$1&page=$2; 

これは

/search/something&12 
/search/xxxyAAA&1212 
/search/XXyyZZ&12 

のように、これらのパターンに従ってくださいそして、あなたはCSS防ぐことはできませんのみの$ REQUEST_URI、書き換えるjsの実行要求をリダイレクトします。

関連する問題