CentOS下.htaccess不起作用的解决方法
程序员文章站
2023-09-05 21:06:11
结果点击一个链接直接404 not found。悲剧,看来apache的rewrite部分有问题了,完全无视掉了.htaccess文件!经过检查apache的模块,发现re...
结果点击一个链接直接404 not found。悲剧,看来apache的rewrite部分有问题了,完全无视掉了.htaccess文件!经过检查apache的模块,发现rewrite模块是开启的状态,看来是httpd.conf文件中的配置有点问题了。回想起之前在ubuntu server下配置rewrite也是启用了一个叫做“allowoverride”的属性为“all”才正确开启了rewrite,这次手动配置virtualhost的时候并没有写上这两句,看来就是这个问题了。
立马输入 :
#vim /etc/httpd/conf/httpd.conf
找到自己的virtualhost设置部分,添上
<directory />
allowoverride all
</directory>
上面这段的directory /的“/”为你的www路径,如放在“/var/www/html”路径下就写为“<directory /var/www/html>”,以此类推。保存后重启httpd服务:
#/etc/init.d/httpd restart
再次进入wordpress,点击一个链接,成了!问题解决。看来这个“allowoverride”很不简单啊!于是上网找了一圈,发现这个是控制.htaccess的关键点所在。除了需要在apache中打开rewrite,以及正确设置.htaccess文件名之外,还需要对目录的allowoverride进行配置,因为默认情况下allowoverride值为none,这样会完全忽略.htaccess文件。
此外,除了all和none这两个值之外,allowoverride还有很多个值,他们的含义分别如下:
authconfig
允许使用与认证授权相关的指令(authdbmgroupfile, authdbmuserfile, authgroupfile, authname, authtype, authuserfile, require, 等)。
fileinfo
允许使用控制文档类型的指令(defaulttype, errordocument, forcetype, languagepriority, sethandler, setinputfilter, setoutputfilter, mod_mime中的 add* 和 remove* 指令等等)、控制文档元数据的指令(header, requestheader, setenvif, setenvifnocase, browsermatch, cookieexpires, cookiedomain, cookiestyle, cookietracking, cookiename)、mod_rewrite中的指令(rewriteengine, rewriteoptions, rewritebase, rewritecond, rewriterule)和mod_actions中的action指令。
indexes
允许使用控制目录索引的指令(adddescription, addicon, addiconbyencoding, addiconbytype, defaulticon, directoryindex, fancyindexing, headername, indexignore, indexoptions, readmename, 等)。
limit
允许使用控制主机访问的指令(allow, deny, order)。
options[=option,...]
允许使用控制指定目录功能的指令(options和xbithack)。可以在等号后面附加一个逗号分隔的(无空格的)options选项列表,用来控制允许options指令使用哪些选项。
这样以来,加上all和none,一共是7个可选的值了。看来又增长了不少的见识呀!以后再出现类似问题,不管哪个linux下,我都能轻松找到问题所在了!
立马输入 :
#vim /etc/httpd/conf/httpd.conf
找到自己的virtualhost设置部分,添上
<directory />
allowoverride all
</directory>
上面这段的directory /的“/”为你的www路径,如放在“/var/www/html”路径下就写为“<directory /var/www/html>”,以此类推。保存后重启httpd服务:
#/etc/init.d/httpd restart
再次进入wordpress,点击一个链接,成了!问题解决。看来这个“allowoverride”很不简单啊!于是上网找了一圈,发现这个是控制.htaccess的关键点所在。除了需要在apache中打开rewrite,以及正确设置.htaccess文件名之外,还需要对目录的allowoverride进行配置,因为默认情况下allowoverride值为none,这样会完全忽略.htaccess文件。
此外,除了all和none这两个值之外,allowoverride还有很多个值,他们的含义分别如下:
authconfig
允许使用与认证授权相关的指令(authdbmgroupfile, authdbmuserfile, authgroupfile, authname, authtype, authuserfile, require, 等)。
fileinfo
允许使用控制文档类型的指令(defaulttype, errordocument, forcetype, languagepriority, sethandler, setinputfilter, setoutputfilter, mod_mime中的 add* 和 remove* 指令等等)、控制文档元数据的指令(header, requestheader, setenvif, setenvifnocase, browsermatch, cookieexpires, cookiedomain, cookiestyle, cookietracking, cookiename)、mod_rewrite中的指令(rewriteengine, rewriteoptions, rewritebase, rewritecond, rewriterule)和mod_actions中的action指令。
indexes
允许使用控制目录索引的指令(adddescription, addicon, addiconbyencoding, addiconbytype, defaulticon, directoryindex, fancyindexing, headername, indexignore, indexoptions, readmename, 等)。
limit
允许使用控制主机访问的指令(allow, deny, order)。
options[=option,...]
允许使用控制指定目录功能的指令(options和xbithack)。可以在等号后面附加一个逗号分隔的(无空格的)options选项列表,用来控制允许options指令使用哪些选项。
这样以来,加上all和none,一共是7个可选的值了。看来又增长了不少的见识呀!以后再出现类似问题,不管哪个linux下,我都能轻松找到问题所在了!
上一篇: 关于喜羊羊与灰太狼
推荐阅读
-
centos 6.8命令行下使用pptpsetup进行pptp拨号的实现方法
-
Linux Centos7系统端口占用问题的解决方法
-
基于centos7 安装python3.6.4出错的解决方法
-
win8下XAMPP中Apache模块无效(apache无法打开)的解决方法
-
centos 6.7 下安装 redis-3.2.5的步骤
-
Linux下php-cgi占内存100%电脑变的很卡的解决方法
-
CentOS6环境下搭建路由器的方法
-
win10下MySQL 8.0登录Access denied for user‘root’@‘localhost’ (using password: YES)问题的解决方法
-
centos7下NFS使用与配置的步骤
-
Linux系统下Tomcat8启动速度很慢的解决方法