nginx 设置伪静态去掉index.php
时间: 2023-10-08 19:12:12 浏览: 57
在nginx中设置伪静态可以通过rewrite规则实现。假设你的网站根目录为/var/www/html,下面是一个去掉index.php的伪静态规则:
```
location / {
# 去掉index.php
if ($request_uri ~ ^/(.*)/index\.php(.*)$) {
return 301 $1$2;
}
# 其他请求交给index.php处理
try_files $uri $uri/ /index.php?$query_string;
}
```
这个规则的作用是:
1. 如果请求URI以/index.php结尾,就把它重定向到去掉/index.php的URI上。
2. 如果请求的文件或目录存在则直接返回,否则交给/index.php处理。
通过这个规则,可以实现去掉URI中的index.php,并且保持其他请求正常访问的效果。需要注意的是,这个规则只是伪静态,实际上还是会访问到index.php文件,只不过URI中不再包含它而已。
相关问题
nginx伪静态隐藏.php后缀,在url后补斜杠
使用nginx伪静态隐藏.php后缀并在URL后补斜杠的方法是通过在nginx的配置文件中添加相应的规则来实现。
首先,我们需要打开nginx的配置文件,一般位于/etc/nginx/nginx.conf。在该文件中,我们可以找到一个名为`server`的块,这是我们需要进行修改的地方。
首先,我们需要在`server`块中添加一个`location`块,用于匹配URL中以.php结尾的请求。可以使用正则表达式进行匹配,如以下所示:
```
location ~ \.php$ {
try_files $uri/ =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.4-fpm.sock; #指定php-fpm的sock文件路径
fastcgi_index index.php;
include fastcgi_params;
}
```
上面的配置中,通过`location`和正则表达式`~ \.php$`来匹配URL以.php结尾的请求。然后,使用`try_files`指令来尝试去寻找以URL后补斜杠的方式来访问文件,若找不到,则返回404错误。
接下来,我们使用`fastcgi_split_path_info`指令将请求分离为两部分,分别为PHP脚本文件路径和路径信息。然后,使用`fastcgi_pass`指令指定php-fpm的sock文件路径,以及`fastcgi_index`指令指定默认的PHP脚本文件名为index.php。
最后,我们将`fastcgi_params`包含进来,以确保正确地传递PHP脚本执行所需的参数。
保存配置文件后,重新加载nginx配置,可以使用`sudo nginx -s reload`命令。
这样,当访问URL时,nginx会自动隐藏.php后缀,并在URL后面自动补上斜杠。例如,如果原始URL为`http://example.com/index.php`,则通过上述配置后,可以直接访问`http://example.com/index/`来访问相应的页面。
nginx wordpress设置伪静态
要在Nginx上设置WordPress伪静态,需要进行以下步骤:
1. 打开Nginx配置文件
首先,需要打开Nginx配置文件。在Ubuntu上,Nginx的配置文件通常位于/etc/nginx/sites-available/default。在其他系统上,可能会有所不同。使用编辑器打开该文件:
sudo nano /etc/nginx/sites-available/default
2. 添加伪静态规则
在server块中添加以下代码:
location / {
try_files $uri $uri/ /index.php?$args;
}
这将尝试查找请求的URI,如果找到,则返回该文件,如果找不到,则将请求发送到index.php文件。
3. 重新加载Nginx配置
完成上述更改后,需要重新加载Nginx配置:
sudo service nginx reload
现在,WordPress将使用伪静态URL来处理请求。