nginx仮想ホストファイルに次のディレクティブがあります。
try_files $uri $uri/ /profile.php?nickname=$uri&$args;
それは問題なく動作しますが、ユーザーが適切なプロファイルアドレスを持つように、0-9a-z-文字のみを書き直したいと思います。次に例を示します。
http://www/mydomain.com/john
しかし、nginxはすべてを書き直します。たとえば、住所を入力すると、次のようになります。
http://www.mydomain.com/non-existing-holder/nonexisting-filename.html
404エラーを返す代わりに、すべてを書き換えます。
0-9-az-文字だけを書き直す方法はありますか?
server {
listen 80;
server_name www.mydomain.com;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
root /var/www/mydomain;
error_page 404 /4044.html;
location / {
index index.html index.htm index.php;
try_files $uri $uri/ /profile.php?nickname=$uri&$args;
rewrite ^/forum/([0-9-]+)/([0-9a-z-]+).html$ /forum.php?tid=$1&title=$2 last;
}
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}