2010-12-01 13 views
18

私は人々がhttp://www.myweb.com/like/1234456に入力したい、私は設定でこのような何かを書いたが、それは動作しません http://www.myweb.com/item.php?itemid=1234456nginxにURLリライトを書き込む方法は?

にリダイレクトされます。

location = ^~/like/ { 
       rewrite ^1234456 ../likeitem.php?item=1234456break; 
       return 403; 
     } 

これは単なるテストに過ぎません。私は$マッチングをまだ使用していません。

また、ngnixサーバーを再起動しますが、リダイレクトは行いません。

答えて

47

$が不足していてreturnコマンドを使用していないため、上記のコードは機能しません。上のコードはバージョン0.8.54を含むNginxで動作します。以下

フォーマットは次のとおりです。 DesiredURL 実際のURL Nginx_Rule

彼らはlocation/{}

http://example.com/notes/343 
http://example.com/notes.php?id=343 

rewrite ^/notes/(.*)$ /notes.php?id=$1 last; 

http://example.com/users/BlackBenzKid 
http://example.com/user.php?username=BlackBenzKid 

rewrite ^/users/(.*)$ /user.php?username=$1 last; 

http://example.com/top 
http://example.com/top.php 

rewrite ^/top?$ /top.php last; 

コンプレックスとさらに

http://example.com/users/BlackBenzKid/gallery 
http://example.com/user.php?username=BlackBenzKid&page=gallery 

rewrite ^/users/(.*)/gallery$ /user.php?username=$1&page=gallery last; 
+1

@ theotherlolは優しい言葉を高く評価します。情報のほとんどはNginx Wikiにあり、ゆっくりとゆっくりと.. nginxはドキュメントとリソースの面でより統一されているようです。 – TheBlackBenzKid

+3

BlackBenzKidはどのように 'id = 1'に変換されますか?それとも私は何かが欠けている? –

+3

@ TheBlackBenzKid:どのように接続されていますか? "users/BlackBenzKid/gallery"というマップを "user.php?username = 1&page = gallery"にするのは誰ですか? –

2

内でなければなりません

、これを試してみてください
server { 
    server_name www.myweb.com; 
    rewrite ^/like/(.*) http://www.myweb.com/item.php?itemid=$1 permanent; 
} 
関連する問題