全球主机交流论坛

标题: 请教一下各位大佬这段规则怎么转成htaccess [打印本页]

作者: http://MJJ.VIP    时间: 2024-9-2 20:20
标题: 请教一下各位大佬这段规则怎么转成htaccess
  1. ```nginx
  2. if (!-e $request_filename) {
  3.     rewrite ^(.*)$ /index.php?s=/$1 last;
  4. }
  5. ```
复制代码


请教一下这段nginx伪静态规则的htaccess版本。


作者: 0.0    时间: 2024-9-2 20:24
这段Nginx的伪静态规则的作用是检查请求的文件是否存在,如果不存在,则将请求重写为以 `/index.php?s=` 开头的格式,然后将请求的 URI 附加在 `s=` 后面。这种重写规则在 Nginx 中使用,而要将其转换为 Apache 的 `.htaccess` 规则,可以使用以下代码:

```apache
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?s=/$1 [L]
</IfModule>
```

### 解释:
- `RewriteEngine On`:启用重写引擎。
- `RewriteCond %{REQUEST_FILENAME} !-f`:检查请求的文件是否存在(`-f` 表示文件),如果不存在则继续重写规则。
- `RewriteCond %{REQUEST_FILENAME} !-d`:检查请求的目录是否存在(`-d` 表示目录),如果不存在则继续重写规则。
- `RewriteRule ^(.*)$ index.php?s=/$1 [L]`:将 URI 重写为 `index.php?s=/请求的URI`,`[L]` 表示这是最后一个规则,执行后停止重写。

这样就实现了类似 Nginx 伪静态规则的效果。




欢迎光临 全球主机交流论坛 (https://52.ht/) Powered by Discuz! X3.4