伪静态配置

> 它的弊端,该框架目前必须开启伪静态才可以使用。 #### Apache ```apache <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L] </IfModule> ``` > 在根目录新建.htaccess文件,将上方伪静态规则放入即可。 ```apache RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^admin/?(.*)$ admin.php?/$1 [QSA,PT,L] ``` 最终我们得到的Apache 伪静态规则为: ```apache <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^admin/?(.*)$ admin.php?/$1 [QSA,PT,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L] </IfModule> ``` 检查以下语句前面有没有#号,有的话去掉#。如果无法找到该行配置,则在`httpd.conf`文件最后增加。 `LoadModule rewrite_module modules/mod_rewrite.so` #### Nginx Nginx需要配置当前站点的配置文件,如下: > 如果是宝塔只需要将下方伪静态规则放入伪静态即可。 ```nginx location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php/$1 last; break; } } ``` > 一般当前站点的配置文件会存储在/etc/nginx/sites-available/目录下面,以站点域名为名称的conf文件。 但如果你希望增加一个入口文件,并且配置伪静态的话,那么可以在 默认的`rewrite` 上面增加一条语句 ```nginx rewrite /admin/(.*)$ /admin.php/$1 last; ``` 最终的伪静态为: ```nginx location / { if (!-e $request_filename){ rewrite /admin/(.*)$ /admin.php/$1 last; rewrite ^(.*)$ /index.php/$1 last; break; } } ``` 此时,我们的路由支持 直接访问。admin.php/index/index 访问,并且还支持 /admin/ 的访问。多种访问方式均支持。