Nginx 隐藏入口文件 index.php

本文介绍了一种Nginx中的重写规则配置方法,通过设置location块内的指令实现对请求路径的重定向,确保当请求指定资源不存在时能够将请求导向到index.php进行处理。

添加重写规则

Nginx

location / {
    index  index.html index.htm index.php;
    #autoindex  on;
    if (!-e $request_filename) {
        rewrite ^/(.*)$ /index.php/$1;
    }
}
在ThinkPHP5框架中,若希望使用Nginx服务器配置来隐藏`public`目录和`index.php`入口文件,需要对Nginx的配置文件进行相应的URL重写设置。 ### Nginx 配置 确保你的网站根目录指向的是项目的`public`目录。然后在Nginx配置文件中添加以下内容: ```nginx server { listen 80; server_name yourdomain.com; # 替换为你的域名 root /path/to/your/project/public; # 替换为你的项目public目录路径 index index.php index.html index.htm; location / { # 如果请求的文件或目录不存在,则重写到index.php if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } } # 处理PHP脚本 location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php-fpm.sock; # 根据实际环境调整 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # 禁止访问.htaccess文件 location ~ /\.ht { deny all; } } ``` ### 关键配置说明 - **root**:指定网站的根目录为`public`,这是ThinkPHP5推荐的入口目录[^3]。 - **location /**:这一段配置的作用是当用户访问的URL对应的文件或目录不存在时,将请求重写到`index.php`,从而实现隐藏入口文件的效果[^3]。 - **rewrite**:通过`rewrite`指令将所有不符合文件或目录的请求转发到`index.php`,并传递原始URL作为参数,确保路由可以正常工作。 - **location ~ \.php$**:处理以`.php`结尾的请求,将其交给PHP解析器处理。注意根据你的PHP运行环境(如PHP-FPM)调整`fastcgi_pass`的值。 完成以上配置后,重启Nginx服务使配置生效。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值