0

/key/0/私の目的は、次のようなリクエストに一致することです。

/key/0/(.*)

page20.html。しかし、リクエストが発生すると、サーバーは 404 で応答します。

198.81.214.48 - - [07/Mar/2013:19:13:46 +0000] "GET /key/0/i-digit/index.php/sample-sites HTTP/1.0" 404 169 "-" "-"

nginx を再起動しましたが、まだ効果がありません。これは私の設定ファイルです:

server {
        listen   80 default;
        server_name  localhost;

        access_log  /var/log/nginx/localhost.access.log;
        location ~ ^/key/0/(.*)$ {
                alias  page20.html#$1;

        }

        location / {
                root   /var/www;
                index  index.html index.htm;
        }

        location /doc {
                root   /usr/share;
                autoindex on;
                allow 127.0.0.1;
                deny all;
        }

        location /images {
                root   /usr/share;
                autoindex on;
        }

        #error_page  404  /404.html;

        # redirect server error pages to the static page /50x.html
        #
        #error_page   500 502 503 504  /50x.html;
        #location = /50x.html {
        #       root   /var/www/nginx-default;
        #}

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
                #proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
                #fastcgi_pass   127.0.0.1:9000;
                #fastcgi_index  index.php;
                #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
                #includefastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
                #deny  all;
        #}
}
4

1 に答える 1

0

ディレクティブは、aliasローカル ファイル パスでそのページを探しています。ただし、その場所のブロックにルートが設定されていませんが、ルートが設定されていることがわかり/var/wwwますlocation /

したがって、あなたが探しているのはエイリアスではなくrewriteだと思います。

だから、次のようなことを試してください:

location ~ ^/key/0/(.*)$ {
    set $target $1;
    rewrite /(.*)$ page20.html#$target permanent;
}
于 2013-03-08T07:28:19.873 に答える