前言

前言之前做一个项目的时候用过的静态写法,个人感觉还不错,所有访问都走 index.php 还可以自定义指定类型或者文件路径的走法。

说明

RewriteCond 是一个条件判断,只要请求地址不是以css js gif 等结尾都使用下面一行规则来定向

RewriteRule 这一句是用来匹配适配的地址,只要不是访问 uploads和public 的url都重定向到 index.php 文件,意思是这两个文件夹下的所有文件类型都不走 index.php,如果你所有的资源文件都是在这两个文件夹下面就使用这个就可以啦 ,上面判断image js css 等资源的条件语句就可以不要啦,如果有其它文件夹的话直接在后面添加,不分顺序,也可以直接通过开放文件夹的方式不走 index.php

Apache 代码

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^.*(\.css|\.js|\.gif|\.png|\.jpg|\.jpeg|\.mp4|\.你要排除的文件类型)$
RewriteRule ^(?!uploads)(?!public)(.*)$ index.php [L,E=PATH_INFO:$1]
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
</IfModule>

Nginx 代码

# nginx configuration
error_page 404 /404.html;
error_page 403 /403.html;
location ~ .*(\.css|\.js|\.gif|\.png|\.jpg|\.jpeg|\.mp4|\.你要排除的文件类型)$ {
}
location / {
  if (!-e $request_filename){
    rewrite ^/(?!uploads)(?!public)(.*)$ /index.php;
  }
}

最后修改:2019 年 09 月 26 日
如果觉得我的文章对你有用,请随意赞赏