CentOS下.htaccess不起作用的解决方法

结果点击一个链接直接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下,我都能轻松找到问题所在了!

(0)

相关推荐

  • CentOS安装pillow报错的解决方法

    安装pillow出现以下问题: ValueError: jpeg is required unless explicitly disabled using --disable-jpeg, aborting ---------------------------------------- Cleaning up... Command /usr/local/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root

  • 用DNSPod和Squid打造自己的CDN (三) 安装CentOS Linux

    第 4 章 安装CentOS Linux 1.基本安装 把光盘塞进光驱,设置BIOS从光驱启动(别告诉我你不会),然后会看到启动界面,上面有一些提示,可以输入一些命令进行高级安装或者进入系统修复模式.不用管,直接按回车. 稍等一下,会出现一个界面要求你做光盘的完整性检查.一般来说现在刻出来的盘不会有坏的,除非是下载回来的ISO文件有问题.所以这里我们跳过. 跳过的方法是:按键盘的TAB键进行控件的选择,被选择上的控件会高亮,我们选择Skip(建议大家随时打开翻译工具或者网站对不懂的英文进行翻译)

  • centos下编译安装mysql报错解决方案

    今天在centos6.2下面源码编译安装mysql的时,在编译mysql的时候报了一个蛋蛋的错误: 复制代码 代码如下: [root@vps870 mysql-5.5.28]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ > -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ > -DDEFAULT_CHARSET=gbk \ > -DDEFAULT_COLLATION=gbk_chinese_ci \ > -

  • CentOS下php使用127.0.0.1不能连接mysql的解决方法

    php代码很简单: 复制代码 代码如下: $server="127.0.0.1"; println("Begin"); $link = mysql_connect($server,"mysql","mysql"); if (!$link) {     die('Could not connect: ' . mysql_error().mysql_errno()); } linux本机下使用php mysql.php 可以查看运

  • Centos 6.3将Mysql 5.1.61升级为mysql 5.6.19遇到的问题及解决方式

    环境:mysql-5.1.61 操作系统:Cent-os6.3 目的:升级为mysql 5.6.19 首先,yum是不可行的.因为yum源没更新,我已经使用了163网易的源,但是还是不行.最新版仍然不是5.6.没办法,mysql分区是5.5之后的功能,要使用分区功能,就必须升级.. 去官网下载地址:http://dev.mysql.com/downloads/mysql/ 我是cent os,选择了Red Hat Enterprise Linux版本. 由于系统是i686的,所以选择i686版本

  • CentOS 6.6实现永久修改DNS地址的方法

    本文实例讲述了CentOS 6.6实现永久修改DNS地址的方法.分享给大家供大家参考,具体如下: 1.配置ip地址文件 /etc/sysconfig/network-scripts/ifcfg-eth0 添加一行: 复制代码 代码如下: DNS1=8.8.8.8    #手动添加一个dns地址: DNS配置文件/etc/resolv.conf 的地址会自动匹配手动添加的地址:重启网卡后不会清除: 2.手动添加dns地址 DNS配置文件 /etc/resolv.conf 复制代码 代码如下: na

  • Centos修改DNS重启或重启network服务后丢失问题解决方法

    介绍 我们在配置Centos的时候,很多情况需要能联外网,那么就需要DNS解析功能,默认的是没有配置DNS信息的,所以我们得配置DNS信息 起因 我们在搜索Centos配置DNS信息的时候,很多都是说在这个文件进行配置"/etc/resolv.conf",我们在这个里面加了nameserver后确实可以ping通域名,但是重启centos或者重启network服务后就无法ping通了,在"/etc/resolv.conf"配置的nameserver信息也丢失了. 处

  • CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法

    最近试了一下PHP7,在编译和支持MySQL上都遇到一些问题,相信不少同学也同样遇到,所以在这里聊一下这个过程.简单来讲编译PHP7只需要3步: 1../buildconf --force 2../configure 3.make && make install 1.3步,都没啥好管的,configure是编译的关键,涉及到PHP对一些库的支持,这里我们使用最小的支持,包括MySQL: curl gd fpm mysqlnd 之所以把curl和gd拿来说,目的是要搞清楚,这些三方库在编译P

  • CentOS 7下MySQL服务启动失败的快速解决方法

    今天,启动MySQL服务器失败,如下所示: [root@spark01 ~]# /etc/init.d/mysqld start Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe&qu

  • Centos下IP与DNS设置方法详解

    本文较为详细的讲述了Centos下IP与DNS设置方法.分享给大家供大家参考,具体如下: 1.CentOS 修改DNS 修改对应网卡的DNS的配置文件 # vi /etc/resolv.conf 修改以下内容 nameserver 8.8.8.8 #google域名服务器 nameserver 8.8.4.4 #google域名服务器 2.CentOS 修改网关 修改对应网卡的网关的配置文件 [root@centos]# vi /etc/sysconfig/network 修改以下内容 NETW

随机推荐