将nginx重定向到index.php

时间:2016-11-03 15:29:26

标签: redirect nginx

我在Raspberry Pi上有nginx。在/etc/nginx/sites-available/default中,我使用以下内容替换了server{},然后我可以使用http://192.168.1.210/访问/var/www/html/index.php

server {
        listen 80;
        server_name $domain_name;
        root /var/www/html/;
        index index.html index.htm;
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        location ~\.php$ {
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_split_path_info ^(.+\.php)(/.*)$;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param HTTPS off;
                try_files $uri =404;
                include fastcgi_params;
                # if (!-e $request_filename){ rewrite ^(.*)$ /index.php break; }
        }
}

我现在想添加一些类似于Apache的简单重定向

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

我在最后添加了if (!-e $request_filename){ rewrite ^(.*)$ /index.php break;(请参阅上面注释掉的行)并将http://192.168.1.210/page2放在浏览器中,但是,该脚本仍然没有重定向到/var/www/html/index.php < / p>

如何将任何不存在的请求重定向到index.php?

1 个答案:

答案 0 :(得分:1)

您要完成的是将不存在的文件和目录重定向到index.php?

这可以通过使用:

来完成
try_files $uri $uri/ /index.php;

或更合理的是:

error_page 404 /index.php;

这也会重定向丢失的文件,图片......