datouniao 2010-08-30
今天公司有一个客户安装workpress 博客,发现生成.htacess 导致网站打不开,后来找到了原因。不是因为没有加截Rewrite_module 库,而是没有给用户重写权限,用户上传到空间的.htacess不生效。
般Linux主机都能很好地支持Apache的mod_rewrite模块,要URL 重写生成永久固定链接也很简单,只要修改WordPress根目录下的.htaccess文件就可以了。但是假如你不巧选择了空间提供商的windows 主机,在IIS下的WordPress url重写就不一定能得到完美的支持。下面我将WordPress 如何在apache 和IIS环境下进行url rewrite 配置做了一下整理,以及如何在WordPress管理后台进行url重写的设置步骤。
一、Apache环境下的URL rewrite:
由于Apache自带了mod_rewrite 模块,要实现URL rewrite 生成伪静态页面很方便。
1. 确认apache模块已经开启,打开apache目录下的conf/httpd.conf文件,找到LoadModule Rewrite_module libexec/mod_Rewrite.so 这一行,假如前面有 # 将其去掉;
2. 配置目录的allowoverwrite属性,
我们公司使用的是prima虚拟主机系统,找到
/etc/httpd/conf.d 或
/usr/prima/etc/httpd/site.conf
<Directory /www>
Options FollowSymLinks
AllowOverride AuthConfig Indexes limit 改成 AllowOverride ALL
Order allow,deny
Allow from all
</Directory>
重启apache 命令 service httpd restart //重启后就可以用了
3. 创建.htaccess文件,新建一个txt文档,将其命名为htaccess.txt,然后在文档里写入下面的代码:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
保存为 htaccess.txt 上传到网站根目录下,最后将文件名修改为 .htaccess,这样在apache环境下服务器端的url rewrite配置就完成了。