nginx 伪静态规则写一个,错误页面自动 跳转到 index.php
时间: 2024-05-06 16:16:00 浏览: 8
可以尝试以下伪静态规则:
```
location / {
try_files $uri $uri/ /index.php?$args;
}
error_page 404 /index.php;
```
上述规则中,`try_files`指令会检查请求的文件是否存在,如果存在则直接返回,否则按顺序尝试添加斜杠、添加 `index.php` 后缀等方式查找。最终如果仍然找不到,则会跳转到 `index.php` 页面处理。
而 `error_page` 指令则会将 404 错误页面重定向到 `index.php` 页面处理。
相关问题
你能写一个简单的nginx伪静态规则吗
可以的,以下是一个简单的nginx伪静态规则:
```
location / {
if (!-e $request_filename){
rewrite ^/(.*)$ /index.php?$1 last;
}
}
```
这个规则会将所有请求都重写到index.php文件,并将请求参数作为GET参数传递给index.php文件。
nginx 设置伪静态去掉index.php
在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中不再包含它而已。