隐藏url上的index.php使得url更美观,安全
首先去httpd中找到大概130行,关键词rewrite_module 放开注释再找到根目录配置
大概219行关键词Director找到AllowOveride None 的None改为All
然后重启apache
最后访问没有index.php的路径,访问成功。
留意如果使用的是apache使用的是rewrite重写规则那么起控制作用的是public下的.htaccess的最后一行
RewriteRue ^(.*)$ index.php/$1 [qsa,pt,l]
代表着,把当前所有url的请求,重定向自动加上index.php的url路径。起哄$1对应的就是括号中的内容。
隐藏入口文件2
隐藏入口文件1
隐藏入口文件
apache配置rewrite_module打开,AllowOverride 设置为All;
入口文件同级编写.htaccess 重写规则
最新版本隐藏不成功,原因是:根目录下.htaccess 的文件,在RewriteRule后面的index.php之后加?(建议)
<IfModule mod_rewrite.c>RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L] </IfModule>
隐藏入口文件
将apache配置文件修改
1、#LoadModule rewrite_module modules/mod_rewrite.so去掉注释,打开扩展;
2、修改网站根目录下的 allowOverride None改为allowOverride All;
3、重启Apache服务器;
打开httpd.conf文件,搜索rewrite,去掉前面;注释,说明打开这个模块,搜索Directory,配置Allowoverride All,重启Apache,然后再项目的目录的.htacess里配置重写规则
3-2隐藏入口文件
修改 httpd.conf
打开loadModule rewrite_module module/mod_rewirte.os
然后找到 AllowOverride NONE 后面NONE 改为 All
thinkphp在路由中(url中)隐藏入口文件index.php时
若服务器为apache 可在http.conf配置文件中修改
thinkphp在路由中(url中)隐藏入口文件index.php时
若服务器为apache 可在http.conf配置文件中
修改 LoadModule rewrite_module modules/mod_rewrite.so 去掉#
修改AllowOverride None 为 AllowOverride All
同时还需要注意项目public目录下的.htaccess重定向文件(框架已经为我们准备好了),若项目端口不是默认的80端口,需将.htaccess文件中
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
改为:
RewriteRule ^(.*)$ ?index.php/$1 [QSA,PT,L] 加上?表示匹配端口,或改为
RewriteRule ^(.*)$ index.php?$1 [QSA,PT,L]
隐藏入口文件
1.什么是隐藏入口文件:其实就是将入口文件index.php不显示在路由中,例如:在不开启隐藏入口文件设置下,需要访问应用默认的index方法,需要这样写:localhost/index.php/index/index/index,如果开启隐藏入口文件设置,那么将index.php拿掉也是可以访问
2.如何来设置隐藏入口文件:apache提供重写静态规则在public目录下创建.htaccess文件,默认apache会去访问这个文件,实现隐藏的需求;nginx需要在nginx.conf文件中配置静态规则(规则可百度)
如果使用的是Apache,使用了reweite规则,在public下面会有一个.htaccess文件,会启用这个RewriteRule规则,不存在,输入省略掉index.php则会报错。
隐藏入口文件则会让我们的url看起来更简洁,更漂亮
隐藏入口文件
在Apache的httpd.conf文件中 查找 reweite 查找到 #LoadModulerewrite_module modules/mod_rewrite.so 去掉前面的#,
,然后就可以了
隐藏入口文件:
找到httpd.conf,
搜索rewrite,把前面的#去掉
找到根目录,把allowoverride none改为all
重启服务器
使用了rewrite规则需要在public目录下的有.htaccess文件
thinkphp隐藏入口文件index.php时
若服务器为apache 可在http.cong配置文件中
修改 LoadModule rewrite_module modules/mod_rewrite.so 去掉#
修改AllowOverride None 为 AllowOverride All
同时还需要注意项目public目录下的.htaccess重定向文件,若项目端口不是默认的80端口,需将.htaccess文件中
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
改为:
RewriteRule ^(.*)$ ?index.php/$1 [QSA,PT,L] 加上?表示匹配端口,或改为
RewriteRule ^(.*)$ index.php?$1 [QSA,PT,L]