yii2 去掉index.php的方法

时间:2022-10-04 19:58:07

1.开启apache-rewrite

在Windows下,我们一般使用的是Administrator账号,所以启用这两项非常简单:

 

在[Apache安装目录]/conf/httpd.conf中找到


#LoadModule rewrite_module modules/mod_rewrite.so


,去掉前面的注释符号#。如果没有这行,请添加。并确认apache安装目录下的modules文件夹中是否有
mod_rewrite.so


这个文件。这样就启用了


Mod Rewrite
功能。



[Apache安装目录]/conf/httpd.conf
中找到


    Options FollowSymLinks    AllowOverride None    Order deny,allow    Deny from all

把“
AllowOverride None
”改成“
AllowOverride All
”,这样所有的文件夹都支持.htaccess了,或者针对指定的文件夹启用.htaccess,可以在


[Apache安装目录]/conf/httpd.conf
中加入

    Options Indexes FollowSymLinks    AllowOverride All    Order allow,deny    Allow from all这种做法一般是和虚拟主机配置在一起的,所以大多数会把上述配置代码写入
[Apache安装目录]/conf/extra/httpd-vhost.conf


中,这样比较清晰易于管理。

 

重启Apache后,就ok了。


完成上诉步骤后,在Wordpress的固定链接中使用除默认外的链接设置,Wordpress会直接在其安装目录中生成对应的.htaccess,这样就可以使用设置的链接形式了。

2.修改配置main.php

'urlManager'=>[
'enablePrettyUrl' => true,
'showScriptName' => false,
//路由管理
'rules' => [
"<module:\w+>/<controller:\w+>/<action:\w+>/<id:\d+>"=>"<module>/<controller>/<action>",
"<controller:\w+>/<action:\w+>/<id:\d+>"=>"<controller>/<action>",
"<controller:\w+>/<action:\w+>"=>"<controller>/<action>",
],
],

3.在入口文件同级目录下添加.htaccess文件

Options +FollowSymLinks

IndexIgnore */*

RewriteEngine on


# if a directory or a file exists, use it directly

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php

RewriteRule . index.php

 

 

 

以上方法,自己亲自实验过,是有效的,只要按步骤来就好了。