CentOS下.htaccess不起作用的解决方法
2023-06-13 09:14:27 时间
结果点击一个链接直接404NotFound。悲剧,看来Apache的Rewrite部分有问题了,完全无视掉了.htaccess文件!经过检查Apache的模块,发现Rewrite模块是开启的状态,看来是httpd.conf文件中的配置有点问题了。回想起之前在UbuntuServer下配置Rewrite也是启用了一个叫做“AllowOverride”的属性为“All”才正确开启了Rewrite,这次手动配置VirtualHost的时候并没有写上这两句,看来就是这个问题了。
立马输入:
#vim/etc/httpd/conf/httpd.conf
找到自己的VirtualHost设置部分,添上
<Directory/>
AllowOverrideAll
</Directory>
上面这段的Directory/的“/”为你的www路径,如放在“/var/www/html”路径下就写为“<Directory/var/www/html>”,以此类推。保存后重启httpd服务:
#/etc/init.d/httpdrestart
再次进入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/>
AllowOverrideAll
</Directory>
上面这段的Directory/的“/”为你的www路径,如放在“/var/www/html”路径下就写为“<Directory/var/www/html>”,以此类推。保存后重启httpd服务:
#/etc/init.d/httpdrestart
再次进入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下,我都能轻松找到问题所在了!
相关文章
- python3.7安装pip_centos怎么安装
- 在CentOS上安装phpMyAdmin的教程
- 查看linux系统版本centos,CentOS下查看系统版本的4种方法
- 教你如何处理CentOS 7忘记密码解决方法过程图解
- centos 7 源码安装openssh的方法
- 在 CentOS 8 上安装Jenkins的方法
- 在 CentOS 8/RHEL 8 上安装和使用 Cockpit的方法
- CentOS新建用户并使能密钥登录的方法
- 发行版CentOS:开放源码的Linux发行版(centos是linux)
- 在 CentOS 上安装 Redis,轻松搞定!(centos安装redis)
- CentOS安装Oracle数据库的步骤(centos安装oracle)
- Centos与Linux:一段友谊(centos和linux的关系)
- CentOS下安装MySQL步骤指南(centos下安装mysql)
- 在红帽企业版和CentOS上安装SQL Server的方法
- 如何在CentOS 8上使用Easy-RSA 3安装OpenVPN服务器和客户端
- 怎么安装CentOS下MySQL的安装教程(centos里mysql)
- CentOS系统如何连接MySQL数据库(centos连mysql)
- CentOS下LighttpdWeb服务器安装与配置方法
- Mysql主从数据库同步(centos篇)
- centos设置fqdn(全称域名)和hostname的方法