thinphp nginx隐藏index.php

本文介绍在Nginx低版本中如何通过配置转发规则来支持PATHINFO,避免在同一域名配置文件中出现两个location/的问题。

一个域名配置文件中 不能出现两个 location /

[ Nginx ]

在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现:

location / { // …..省略部分代码
   if (!-e $request_filename) {
   		rewrite  ^(.*)$  /index.php?s=/$1  last;
    }
}
### 配置Nginx隐藏URL中的`index.php` 为了使URL更加简洁美观并有利于SEO优化,在部署基于PHP的应用程序时通常会配置Web服务器以隐藏`index.php`。针对Nginx环境下的最佳实践如下: #### 修改Nginx配置文件 编辑Nginx的主要配置文件或站点特定的配置文件,一般位于`/etc/nginx/nginx.conf`或是`/etc/nginx/sites-available/default`中[^1]。 ```bash sudo nano /etc/nginx/sites-available/default ``` #### 设置location块处理请求转发 在适当的位置添加或修改`location /`区块内的规则以便于正确解析不含`index.php`路径的请求: ```nginx server { listen 80; server_name yourdomain.com; root /path/to/your/project; index index.php index.html index.htm; location / { try_files $uri $uri/ @rewrite; } location @rewrite { rewrite ^/(.*)$ /index.php/$1 last; } location ~ \.php(/|$) { fastcgi_pass unix:/var/run/php/php7.x-fpm.sock; # 根据实际情况调整版本号 include snippets/fastcgi-php.conf; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } ``` 此段配置确保当访问不存在的实际文件或目录时,将尝试通过`@rewrite`命名位置来重写URI至带有`index.php`的形式,并最终交由PHP处理器执行[^2]。 #### 测试与重启服务 完成上述更改之后保存文件并退出编辑器。接着测试新配置的有效性以及语法正确性: ```bash sudo nginx -t ``` 如果一切正常,则重新加载Nginx应用新的设置: ```bash sudo systemctl reload nginx ``` 以上即为配置Nginx隐藏URL中`index.php`的方法概述[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值