ホームページ >バックエンド開発 >PHPチュートリアル >nginxの場所の正規マッチングの問題

nginxの場所の正規マッチングの問題

WBOY
WBOYオリジナル
2016-06-23 13:40:211666ブラウズ


ディスカッションへの返信 (解決策)

書き換え ^/([A-D])([a-zA-Z0-9]{10})/?$ /index.php?a=$1&b=$2 last;

を書き換えます ^/([A-D])([a-zA-Z0-9]{10})/?$ /index.php?a=$1&b=$2 last;



は場所に一致します、転送を行っているものと一致しました

次のものがエラーを報告したため開始できませんでした
	location ^/([A-D])([a-zA-Z0-9]{10})/?$ {		proxy_pass http://127.0.0.1:88/;		proxy_redirect off;		proxy_set_header Host localhost2;		proxy_set_header X-Real-IP $remote_addr;		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;		proxy_set_header Referer $http_referer;		proxy_set_header Cookie $http_cookie;		proxy_connect_timeout 60;		proxy_read_timeout 600;		proxy_send_timeout 600;	}

location ~ ^/([A-D])([a-zA-Z0-9]{10})/?$

1 つ追加します ~通常のマッチです

エラーメッセージは何ですか?
投稿してください。 。 。 。

location ~ ^/([A-D])([a-zA-Z0-9]{10})/?$

~ を追加すると、正規表現と一致します



それでもエラーが報告され、を開始できません

nginx を起動しています: nginx: [emerg] pcre_compile() failed: missing) in "^/([A-D])([a-zA-Z0-9]"

エラー メッセージは何ですか?
投稿してください...



nginx を開始しています: nginx: [emerg] pcre_compile() 失敗しました: missing ) in "^/([A-D])([a-zA-Z0-9]"

missing ) in " ^/([A-D] )([a-zA-Z0-9]"
これは中括弧で切り取られています。おそらく次のコードセグメントの中括弧と混同されているため、エスケープする必要がありますか? あるいは、単純に置き換えることもできます。 {10} を + で直接
私はしませんでした。これを実行してください...特別な処理が必要なシンボルがあるかどうかを確認してください

がありません ) in "^/([A-D])([a-zA-Z0 -9]"
これは中括弧で切り取られています。おそらく次のコードセグメントの中括弧と混同されているため、エスケープする必要がありますか? それとも、{10} を直接 + に置き換えることはできますか? 私はこれを行ったことがありません。特別な処理が必要なシンボルがあるかどうかわかりますか? location ^/([A-D])([a-zA-Z0-9]+)/?$ {}
nginx で起動できます



location ^/([A-D])([ a-zA-Z0-9]+)/?$ {} nginx で起動できます


おっしゃる通り、私の location の下のコードは間違って書かれていました

最終的にこれに変更しました。「~/[A-D][a-zA-Z0-9]{10}$」です

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。