NGINX 不应更改浏览器地址栏中的 URL

NGINX 不应更改浏览器地址栏中的 URL

我希望您能在以下问题上帮助我。

我正在运行 NGINX,并且想要将 .html(虚拟页面)转发到 index.php?view=$args 而不更改 URL,该 URL 显示在浏览器地址栏(请求 URI)中

我尝试了几次,但每次我访问:example.com/meldung.html 时,NGINX 都会将浏览器 URL 更改为:example.com/index.php?view=Meldung,但这不是我想要的。

example.com/meldung.html 应该在内部路由到 index.php?view=$1,但不要在用户看到的范围之外。

        listen 80;
        root /var/www/example.com;
        index index.html index.htm index.php;

        server_name example.com www.example.com
        index index.html index.htm index.php;
        access_log /var/log/nginx/example.com_access.log;
        error_log /var/log/nginx/example.com.io_error.log;
        set $skip_cache 0;
        # POST requests and URLs with a query string should always go to PHP
        if ($request_method = POST) {
        set $skip_cache 1;
        }

        if ($query_string != "") {
        set $skip_cache 1;
        }
        location / {
                try_files $uri $uri/ =404;
                satisfy all;

                if (!-f $request_filename) {
                        rewrite ^(.*)\.html$ /index.php?view=$1 last;
                }
        }
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
                fastcgi_cache_bypass $skip_cache;
                fastcgi_no_cache $skip_cache;
        }

在 Apache 上它可以正常工作:

RewriteRule ^(.*).html$ index.php?view=$1 [L,NC]

但不是在 NGINX 上

相关内容